Java 关于一行代码的问题
在下面截取的代码中,我有一个问题,给定的声明数组是integer类型。您能解释一下在line map[s.charAt(I)]++上发生了什么吗。我很难理解这里的语句,因为在初始化期间数组的类型是integer,但字符类型是作为输入提供的Java 关于一行代码的问题,java,arrays,Java,Arrays,在下面截取的代码中,我有一个问题,给定的声明数组是integer类型。您能解释一下在line map[s.charAt(I)]++上发生了什么吗。我很难理解这里的语句,因为在初始化期间数组的类型是integer,但字符类型是作为输入提供的 public int firstUniqChar(String s) { int[] map = new int[128]; for(int i=0;i<s.length();i++) map[s.charAt(i)]++; for(int i
public int firstUniqChar(String s)
{
int[] map = new int[128];
for(int i=0;i<s.length();i++)
map[s.charAt(i)]++;
for(int i=0;i<s.length();i++)
if(map[s.charAt(i)] == 1)
return i;
return -1;
}
public int firstUniqChar(字符串s)
{
int[]map=新int[128];
对于java中的(inti=0;i,假设您有一个inti=0
变量声明,i++
是将1和变量值相加的语法,即i=i+1
。
在本例中,将1求和到映射
数组位置,该位置由s.charAt(i)
索引
假设s
是一个字符串对象,s.charAt(i)
返回i
位置(0-索引)的char
。当Java将char
读取为int
(对映射
数组进行索引)时,使用该char
数组的ASCII代码
因此,map[s.charAt(i)]++
所做的是将1和字符的ASCII码索引的map
数组相加。请看下面的答案:是的。谢谢。