index는 0부터
substring 인자 1개 -> 해당 index 포함하여 마지막까지. 길이가 10일 때 length를 넣으면 10번째는 없지만 에러는 나지 않고 빈값
substring 인자 2개 -> 첫 번째 인자 포함하고 두 번째 인자 전까지
substring 사용 시 두 번째 인자에 length를 사용해도 두 번째 인자에서 -1이기 때문에 문제가 없다.
indexOf, lastIndexOf는 해당 index 위치를 그대로 가져온다
String word = "0123456789";
//length 10
System.out.println(word.substring(0)); //0123456789
System.out.println(word.substring(1)); //123456789
System.out.println(word.substring(0, 1)); //0
System.out.println(word.substring(0, 2)); //01
System.out.println(word.substring(1, 1)); //동일값이라 빈값
System.out.println(word.substring(word.length())); //에러 나지 않음 결과: 빈값
System.out.println(word.substring(1, word.length())); //123456789
System.out.println(word.indexOf("5")); //5
System.out.println(word.substring(word.indexOf("5"))); //56789
System.out.println(word.substring(word.indexOf("5")+1)); //찾은 위치에서 +1 해야 그 다음부터: 6789
System.out.println(word.lastIndexOf("7")); //7
System.out.println(word.substring(word.lastIndexOf("7"))); //789
System.out.println(word.substring(word.lastIndexOf("7")+1)); //찾은 위치에서 +1 해야 그 다음부터: 89
n만큼 자르기
public static List<String> usingSplitMethod(String text, int n) {
String[] results = text.split("(?<=\\G.{" + n + "})");
return Arrays.asList(results);
}
public List<String> usingSubstringMethod(String text, int n) {
List<String> results = new ArrayList<>();
int length = text.length();
for (int i = 0; i < length; i += n) {
results.add(text.substring(i, Math.min(length, i + n)));
}
return results;
}
https://www.baeldung.com/java-string-split-every-n-characters
'MY' 카테고리의 다른 글
참고용 링크 (0) | 2023.09.10 |
---|---|
thread processing (0) | 2023.08.21 |
code style (0) | 2023.08.05 |
ajax 엑셀 다운 (0) | 2023.05.13 |
내가 보는 잡다한 기록 (0) | 2023.04.29 |