gpt4 book ai didi

java - 这个 boolean 数组是如何工作的?

转载 作者:行者123 更新时间:2023-12-01 09:27:39 26 4
gpt4 key购买 nike

我不明白这段代码是如何工作的。问题是找到给定年份之后具有不同数字的下一年。

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 语句具体是如何工作的?

if (characters[f.charAt(x) - '0']){

检查 boolean 值在这里有什么作用?难道不应该全部默认为 false 吗?为什么会有-'0'?抱歉提出了菜鸟问题。

最佳答案

表达式

f.charAt(x) - '0'

将根据字符串f中位置x的数字返回0到9之间的数字。因此,代码将在数组中的每个 10 位数字位置设置一个 boolean 标志,如果一个数字出现多次,则它将报告 false 并跳出内循环以考虑下一年。

关于java - 这个 boolean 数组是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39714349/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com