2017-11-28 6 views
1

偶数文字のデータファイル内のすべてのラテン語名に含まれるユニークワードの総数を調べようとしています。これは、これまでのコードIです:データファイル内の偶数文字の一意の単語 - Java

public static void main(String[] args) { 
    int evenWord = 0; 
    evenWord += countEvenWord(latinName); 
    System.out.print("Total number of unique even words in Latin names = "); 
    System.out.println(evenWord); 
} 

public static int countEvenWord(String name) {  
    int numberEven = 0; 
    if(name.length() % 2 == 0) { 
     String[] person = name.split("[^a-zA-Z]+"); 
     for(String token: sharks) { 
      numberEven += token.length(); 
     } 
    } 
    return numberEven; 
} 

出力:

Total number of unique even words in Latin names = 297 

コードは、すべてのラテン名の中でも、文字の合計数を見つけませんが、私は独特の合計数を見つけたいですデータファイルに含まれる単語。

データファイル:あなたがSet<String>を使用し、その内の名前を格納する必要が

David Lee:Cephaloscyllium ventriosum 
Max Steel:Galeocerdo cuvier 
Jimmy Park:Sphyrna mokarren 
... 
+0

のようになりますカウント –

答えて

1

。これにより、一意性が保持されます。

public static int countEvenWord(String name) { 
Set<String> set = new HashSet<>(); 

    int numberEven = 0; 
    if(name.length() % 2 == 0) { 
     set.add(name); 
     } 
    } 
    return set.size(); 
} 

N.B:私は名前の検索ロジックを書いていません。

EDIT

String name = "David Lee:Cephaloscyllium ventriosum"; 
     Set<String> set = new HashSet<>(); 

      String[] sharks = name.split("[^a-zA-Z]+"); 
      for(String token: sharks) { 
       if(token.length()%2==0) 
        set.add(token); 
      } 
     return set.size(); 
+0

numberEvenはどうですか?それは使用されていません。 – User786

+0

@ User786 pls更新されたコードを参照 –

0

あなたcountUniqueWords方法はここにあなたが言葉、文字の偶数を持つ単語の長さではなく合算され

public static int countUniqueWords(String latinName) {  
      int numberEven = 0; 
      String[] words=latinName.split(" "); 
      Set<String> uniqueWords=new HashSet(); 
      for(String word:words) { 
       if(word.length()%2==0) { 
        uniqueWords.add(word); 
       } 
      } 
      return uniqueWords.size(); 
     } 
+0

あなたは 'word.length()%2 == 1'を変更したいかもしれません –

+1

申し訳ありません!編集したコードを確認してください。 –

関連する問題