例: 入力 name と出力 n、入力 teeter と出力 r、入力 namename と出力 null
具体的な実装コードは次のとおりです。 ##
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String str = in.next(); for(int i =0 ; i < str.length() ; i++) { if(str.lastIndexOf(str.char(i)) == i && str.indexOf(str.char(i)) == i) { System.out.println(str.char(i)); break; } } } }
String.length( ): 文字列の長さを取得します。
: インデックスの文字を取得します。 ##String.lastIndexOf(char c ): 文字 c が文字列内に最後に出現したときのインデックスを取得します。
String.indexOf(char c): のインデックスを取得します文字列に文字 c が初めて出現するとき
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String str = in.next(); char[] cb = new char[str.length()]; //将字符串中的字符一次存入cb[] for(int i =0 ;i <str.length() ; i++) { cb[i] = str.charAt(i); } for(int i = 0 ; i < str.length() ; i++) { for(int j = 0 ; j < str.length() ; j++) { if(cb[i] == cb[j] && cb[i] != '0') { char c = cb[i]; for(int z = 0 ; z < str.length() ; z++) { if(cb[z] == c) cb[z] = '0'; } } } } for(int i = 0 ; i <str.length() ; i++) { if(cb[i] != '0') { System.out.println(cb[i]); break; } } } }
Thisという方法も実装可能ですが、この方法は時間計算量が非常に大きく、システムのオーバーヘッドも非常に大きいため、どうしても必要な場合以外はループの入れ子を使用しない方が良いです。
おすすめの関連記事とチュートリアル: java クイック スタート
以上がJavaで文字列内の最初の非繰り返し文字を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。