2016-04-14 16 views
0

コードの場合、ユーザー入力を起こしてwitespacesで分割し、ユーザー入力から個々の単語を取り出し、その単語がテキストファイルに含まれているかどうかを確認します1つは文字列配列で、もう1つはint配列です)。ユーザーが入力した単語が見つかるたびに、それを追加する必要がありますが、どちらかの一致を実装する方法や、単語がString配列に含まれているかどうかを比較するequalsToを調べる方法がわかりません。文字列配列内の単語を検索しようとするときに問題が発生する

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; 
    } 
+0

を '文字列#1 equals'方法があります大文字と小文字を区別。たぶん '.toLowerCase()'を適用しますか?私たちにいくつかのテストデータを教えてください – Norsk

答えて

0

非常に簡単です。代わりに、次の

if (movieReviewComments[i].toLowerCase().contains(test.toLowerCase())

そして、あなたは同じ比較ではなく封じ込めをテストする場合は、以下を使用します:あなたはそれを次のように操作を行うことができ

if (test.equalsIgnoreCase(movieReviewComments[i])

+0

ありがとう、私はメソッドを含んでいますし、それはうまくいきました。 – Earl

+0

Cool。それがうまくいったら、それを忘れずに答えてください。 – VHS

関連する問題