개발자가 기대하지 않은 결과 = 버그라고 생각하는대요,
String test = " a b c d ";
System.out.println(Arrays.toString(test.split(" "))); 하면
Java의 String클래스의 split() 결과는
" ", "a", "b", "c", "d"가 나와요.
첫 공백은 나오는데 마지막 공백은 포함이 안되요.
어쨌든 Java만든 Oracle회사에서는
첫번째 공백이 나오고 마지막 공백이 안나오는 저 결과를 기대했으니까 저렇게 만든거같은대..
이유가 있나요?
전 아무리생각해도..
" a b c d "를 공백으로 split한다고 하면,
개발자는 " ", "a", "b", "c", "d", " "이렇게 앞뒤공백까지 다 나오던가,
아니면 "a" "b" "c" "d" 이렇게 앞뒤공백 아예 다 안나오던가,
둘중 하나의 상황을 기대하면 기대했지,
앞공백만 나오고 뒷공백이 안나오는 상황을 기대하는건 좀 이상하다고생각해요.
대략 이런 메소드를 두개 만들었는대요,
구분자의 종류를 넣으면,
1. 실제로 사용된 구분자의 순서대로 저장된 리스트 반환하는거랑,
2. 구분자의 종류대로 split해서 리스트로 반환하는거랑 2개를 만들었는대..
split()결과에서 empty string을 어떻게 해야할지 모르겠어요.
개발자가 원하는 split()결과대로 만들어줄수는있는대 뭘 원하는지...