코드 줄에 관한 질문 [중복]

Sep 26 2020

아래 코드에서 질문이 있는데, 주어진 선언 된 배열은 정수형입니다. map [s.charAt (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;
 }

답변

1 SidneiBernardo Sep 26 2020 at 10:55

자바에서 int i = 0변수 선언 이 있다고 가정하면 i++변수 값에 1을 더하는 구문 suggar, 즉 i = i + 1. 귀하의 경우 1을 map배열 위치에 합산 하고 s.charAt(i).

sString 객체라고 가정하면 at 위치 (0 인덱스)를 s.charAt(i)반환합니다 . Java가 ( 배열 을 인덱싱하기 위해) as a를 읽을 때는 해당 ASCII 코드를 사용합니다 .charicharintmapchar

그래서, 문자의 ASCII 코드로 색인 된 배열에 map[s.charAt(i)]++1을 더하는 것 map입니다.