Java 关于一行代码的问题

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

在下面截取的代码中,我有一个问题,给定的声明数组是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=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
数组相加。

请看下面的答案:是的。谢谢。