티스토리 뷰

JVM

String charAt()

글을 쓰는 개발자 2021. 6. 25. 09:20
반응형
Array Required, but java.lang.String found
import java.util.*;

class Solution {
    public int lengthOfLongestSubstring(String s) {
        HashMap<Character,Integer> map = new HashMap<>();
        int left=0,ans=0;
        for(int i=0;i<s.length();i++){
            if(map.containsKey(s[i])){ //여기에서 error가 난다.
                int loc=map.get(s[i])+1;//여기에서 error가 난다.
                left=left>loc?left:loc;
            }
            int value = i-left+1;
            ans=ans<value?value:ans;
            map.put(s[i],i);//여기에서 error가 난다.
        }
        return ans;
    }  
}

 

String instance method에서 charAt()을 쓰면 해당 문자열 인덱스 부분을 char 타입으로 반환하는 메소드가 있다.

 

import java.util.*;

class Solution {
    public int lengthOfLongestSubstring(String s) {
        HashMap<Character,Integer> map = new HashMap<>();
        int left=0,ans=0;
        for(int i=0;i<s.length();i++){
            if(map.containsKey(s.charAt(i))){
                int loc=map.get(s.charAt(i))+1;
                left=left>loc?left:loc;
            }
            int value = i-left+1;
            ans=ans<value?value:ans;
            map.put(s.charAt(i),i);
        }
        return ans;
    }  
}

이와 같이 수정하면 된다.

String에서 s[i]를 허용하지 않는 것은 immutable 하기 때문이다. 

보시다시피 final 제어자 붙은 것을 볼 수 있다.

반응형

'JVM' 카테고리의 다른 글

[java][2d array][Comparator] 2차원 배열 정렬  (0) 2021.07.30
[JAVA][String] 정렬하는 방법  (0) 2021.07.27
JAVA ".class"에 대하여  (0) 2021.07.05
MySQL & JDBC 연결  (0) 2021.05.15
자바 문자 비교  (0) 2021.05.12
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함