처음에 이렇게 코드를 짰는데
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String S = sc.nextLine();
String[] stringArray = S.split(" ");
List<String> stringList = Arrays.asList(stringArray);
stringList.remove(" ");
System.out.println(stringList);
}
}
입력
love // 앞에 공백 있음
출력
[, love]
공백이 삭제가 안 되고 계속 출력돼서... 계속 찾아봤다.
asList는 불변 리스트를 return해서 그 자체로는 원소의 추가/삭제가 불가능하다.
이때 값을 추가하거나 삭제하려는 리스트로 만들고 싶다면 다음과 같이 ArrayList로 다시 생성해 주면 된다.
List<String> stringList = new ArrayList<>(Arrays.asList(stringArray));
stringList.remove("");
참고로, 이 때 첫 줄 맨 앞을 ArrayList라고 하면 에러가 발생한다(as'List'를 썼기 때문인 듯).
공백을 제거할 때 자주 쓰는 다른 방법으로는 trim, replaceAll 등이 있는데 이들은 문자열에서만 사용할 수 있다.
'Programming Language > Java' 카테고리의 다른 글
[Java] 백준 BOJ 10810: 공 넣기, 배열 선언 시 Integer과 int의 차이 (0) | 2024.01.19 |
---|---|
[Java] 백준 BOJ 2745: 진법 변환 (0) | 2024.01.09 |
[Java] Java란? (0) | 2023.11.28 |
[Java] 백준 BOJ 9086: 문자열 (0) | 2023.11.20 |
[Java] StringBuilder: char 데이터 합쳐서 문자열 만들기 (1) | 2023.11.20 |