gpt4 book ai didi

java - count[str.charAt(i)]++ 实际存储的是什么?

转载 作者:行者123 更新时间:2023-12-02 04:32:10 26 4
gpt4 key购买 nike

给定一个字符串,找到其中第一个不重复的字符并返回它的索引。如果不存在,则返回-1。

这个问题其实我看了解决方案之后就解决了。但我不明白 getCharOccur 函数中发生了什么。明确地说,count[str.charAt(i)]++ 中到底存储了什么。该数组内的索引和值是什么。另外,一开始为什么我们将 count[] 声明为具有 256 个字符的空数组的动态数组?我尝试打印 count[str.charAt(i)]++ 但它在控制台中显示一些空值。

public class Main {
static final int chars=256;
static char count[]=new char[chars];

//calculating the number of occurences of each character
static void getCharOccur(String str){
for(int i=0; i<str.length(); i++){
count[str.charAt(i)]++;

}
}

//Calculating index of first non repeating character
static int getNonRepeatChar(String str){
getCharOccur(str);
int index=-1;
for(int i=0; i<str.length(); i++){
if(count[str.charAt(i)]==1){
index=i;
break;
}
}
return index;
}

public static void main(String[] args) {
String str="thisisit";
int index=getNonRepeatChar(str);
System.out.println(index==-1 ? "Either all characters are
"repeating character is "+str.charAt(index));

}
}

结果在打印时有效:第一个非重复字符是 h

最佳答案

char 只是一个表示 unicode 字符的无符号整数。

您还可以将其用作数字,它从 \u0000 开始,如果您递增它,您可以得到 \u0001 您也可以像任何数学一样对它进行数学运算数量。

这是一个示例,我附上了解释它的视频。

https://twitter.com/PeterLawrey/status/1131620691906891777

注意:char 在 65535 之后溢出,因此不是一个好的选择,除了它令人困惑之外。使用 int[] 会是更好的选择。

关于java - count[str.charAt(i)]++ 实际存储的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56575969/

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