문자열을 변경하는 방법은 크게 2가지
- 아예 새로운 문자열을 만들어 주는 것
- 각 문자를 원소로 갖는 배열로 변환하여 변경
substring() 함수를 이용해서 부분 문자열을 뽑아낸다.
substring(시작 인덱스, 끝 인덱스)
substring(0, 2) 라면 0번째 인덱스부터 2번째 인덱스 전까지 리턴한다.
substring(인덱스)
substring(3) 이면 3번째 인덱스부터 마지막까지 문자열을 자르는 것이다.
문자열의 마지막 index + 1 값을 인덱스로 지정하면 빈 문자열을 리턴한다.
이때, 음수값이나 범위를 벗어나는 값을 입력하면 StringIndexOutOfBoundsException이 발생한다.
public class Main {
public static void main(String[] args) {
String s = "baaana";
s = s.substring(0, 2) + "n" + s.substring(3);
System.out.println(s);
}
}
=> banana
toCharArray() 함수를 이용하면 각 문자를 원소로 갖는 리스트가 만들어진다.
public class Main {
public static void main(String[] args) {
String s = "baaana";
char[] arr = s.toCharArray();
arr[2] = 'n';
for(int i = 0; i < arr.length; i++)
System.out.print(arr[i] + " ");
}
}
b a n a n a
각각이 리스트 내 원소이므로, arr[2]를 통해 3번째 원소를 'n'으로 바꾸는 것이 가능해진다.
문자들로만 이루어진 리스트는 String.valueOf(문자 배열) 함수를 이용해 다시 문자열로 합쳐줄 수 있다.
public class Main {
public static void main(String[] args) {
String s = "baaana";
char[] arr = s.toCharArray();
arr[2] = 'n';
s = String.valueOf(arr);
System.out.println(s);
}
}
banana