Kod için, bir kullanıcı girdisi uyandırır ve witespaces ile böler, ardından tek tek kelimeleri kullanıcı girdisinden alır ve tekil kelimenin metin dosyasında olup olmadığını kontrol eder. biri dize dizisi ve diğeri bir int dizisi ile paralel diziler içeren). Kullanıcı tarafından girilen kelimeyi her seferinde bir tane eklemesi gerekir ama problem, ya eşleşmeyi bilmemem ya da kelimeyi String dizisinde olup olmadığını kontrol etmek için karşılaştırmak ya da eşittir.Dize dizisinde bir sözcük bulmaya çalışırken sorun
public class MovieReviewSentimentAnalysis {
static Scanner userInput = new Scanner(System.in);
public static void main(String[] args) {
// TODO: complete me
//make own arrays to pass by value
//movieReviewComments = the text
String[] movieReviewComments = new String[10000];
//movieReviewScores = numeric values, avoid lit. values
int[] movieReviewScores = new int[10000];
String userComment = "";
// String reviewFile = "";
// reviewFile = args[0];
String whiteComment = "";
MovieReviewReader.readMovieReviews("movie_reviews.txt", movieReviewComments, movieReviewScores); //string, string array, and int array
System.out.println("Please type one line of review and when you are done press either Ctr D or Ctr Z");
userComment = userInput.nextLine();
System.out.println(userComment);
String[] words2 = userComment.split("[\\W]");
double itemCount = 0;
double wordTotal = 0;
double totalSumOfUserCommentWords = 0;
String test = "";
// int itemCount = words.length;
for (int i = 0; i < words2.length; i++)
{
test = words2[i];
itemCount = wordCount(test, movieReviewComments, movieReviewScores);
wordTotal += itemCount;
totalSumOfUserCommentWords = wordTotal/userComment.length();
// System.out.println(totalSumOfUserCommentWords);
}
// System.out.println(reviewFile);
System.out.println("Incomplete assignment");
userInput.close();
}
public static double wordCount(String test, String[] movieReviewComments, int[] movieReviewScores)
{
double storeScore = 0;
double totalSumofReviewScores = 0;
double numOfTimesWordAppears = 0;
for (int i=0; i < (movieReviewComments.length); i++)
{
if (test.equals(movieReviewComments[i])) //////////////////////////////////////////////////////////SOMETHING'S OFF
{
storeScore = movieReviewScores[i];
totalSumofReviewScores += storeScore;
numOfTimesWordAppears++;
System.out.println("Found"); //QUQ when will you appear!?!?
}
else
System.out.println("You dun goofed"); //delete after fixing problem
}
double wordScoreAverage = totalSumofReviewScores/numOfTimesWordAppears;
return wordScoreAverage;
}
'Dize # equals' yöntemidir:
if (movieReviewComments[i].toLowerCase().contains(test.toLowerCase())
Ve yerine aşağıdaki eşit karşılaştırma değil çevreleme, kullanım test etmek istiyorsanız harfe duyarlı. Belki .toLowerCase() 'yi uygulayabilir misiniz? Bize bazı test verilerini göster Lütfen – Norsk