このコードの仕組みがわかりません。この問題は、特定の年の後に別の数字で翌年に発見されます。このブール配列はどのように機能しますか?
public Main(){
try{
BufferedReader in;
in = new BufferedReader (new InputStreamReader (System.in)); //Used for CCC
String year = (in.readLine());
for(int i = Integer.parseInt(year)+1;; i++){
String f = Integer.toString(i);
boolean [] characters = new boolean[10];
boolean unique = true;
for(int x = 0; x < f.length(); x++){
if (characters[f.charAt(x) - '0']){
unique = false;
break;
}
else{
characters[f.charAt(x)-'0'] = true;
}
}
if (unique){
System.out.println(f);
return;
}
具体的にはどのようにすればよいのですか?
if (characters[f.charAt(x) - '0']){
ここでブール値のチェックは何ですか?彼らはすべて偽にデフォルト設定されるべきではありませんか?なぜそこに ''0があるのですか?ごめんなさい。
ブレークポイントを設定しようとしましたか、それともコードをデバッグして自分で理解しようとしましたか? –
'すべてデフォルトではfalseにしてはいけませんか? - そうですが、文字' [x] 'をチェックしていません[f.charAt(x) - '0']' –
@ cricket_007私は試しましたが、私はJavaの初心者ですので、デバッガの使い方は分かりませんでした。 –