ホームページ  >  記事  >  Java  >  Java で最初の非反復文字を見つけるにはどうすればよいですか?

Java で最初の非反復文字を見つけるにはどうすればよいですか?

王林
王林転載
2023-04-21 21:04:061074ブラウズ

文字列から最初の非繰り返し文字を見つける方法は?

たとえば、文字列「Silent King Shen Silent Two」では、最初の非繰り返し文字は「」です。 「Shen」が繰り返されるので、「Mo」が繰り返されます。

public class FindNonRepeatingChar {     public static void main(String[] args) {         System.out.println(printFirstNonRepeatingChar("沉默王沉沉默二"));         System.out.println(printFirstNonRepeatingChar("沉默王沉"));         System.out.println(printFirstNonRepeatingChar("沉沉沉"));     }      private static Character printFirstNonRepeatingChar(String string) {         char[] chars = string.toCharArray();          List<Character> discardedChars = new ArrayList<>();          for (int i = 0; i < chars.length; i++) {             char c = chars[i];              if (discardedChars.contains(c))                 continue;              for (int j = i + 1; j < chars.length; j++) {                 if (c == chars[j]) {                     discardedChars.add(c);                     break;                 } else if (j == chars.length - 1) {                     return c;                 }             }         }         return null;     } }

出力結果は次のとおりです:

王 默 null

私のアイデアについて話しましょう:

1) 文字列を文字配列に分割します。

2) リストを宣言し、その中に繰り返し文字を入れます。

3) 外側の for ループは最初の文字から始まり、すでにリストにある場合は次のラウンドに進みます。

4) ネストされた for ループは、最初の文字の次の文字 (j = i 1) からトラバースを開始します。前の文字の重複が見つかった場合、その文字はリストに追加され、リストから飛び出します。内側の層。ループ; 最後の (j == chars.length - 1) が見つからない場合、それは最初の非反復文字ですよね?

以上がJava で最初の非反復文字を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。