본문 바로가기

Dev/Java

Java - 문자열 자르기, 문자열 교체, 문자열 카피

728x90

1. 문자열 자르기

 

split : 문자열을 기준에 따라 자른다. 원본 문자열은 바뀌지 않는다. 새롭게 문자열 배열을 구성해야한다.

 

String str = "Java is very hard,C++ is very hard";
String[] splitstr = str.split(",");
for(String spl : splitstr)
    System.out.println(spl);

 

subString : 문자열을 범위에 따라 자른다. 원본 문자열은 바뀌지 않는다. 즉 반환형이다. 

 

String substr = str.substring(0, 3);
System.out.println(substr);

 이 함수의 특징은 0~3부터가 아니라 0~2 까지이다. 

 

2. 문자열 확인, 교체

 

contain : 포함하고있는가 확인. boolean 형식이다.


if(str.contains("hard")) 
    System.out.println("True");

 

replace :  replace("a", "b") 이것도 반환형이다. 본래 문자열을 변하지 않는다. 그런데 만약 a가 문자열에 없다면? 바뀌지않은 원래 문자열이 들어간다.

 


String replacestr = str.replace("hard", "easy");
System.out.println(replacestr);

String replacestr2 = str.replace("hardly", "easy");
System.out.println(replacestr2);

3. 문자열의 index

indexOf("abc") abc라는 문자열이 어느부분에 처음 나오는가? 의 인덱스를 알려준다. charAt 은 그 부분의 문자를 출력해준다.

 

System.out.println(str.indexOf("C++"));
System.out.println(str.charAt(18));

 

4. 배열의 복사

 

System.arraycopy(arr1, 0, arr2, 0, 3)

=> arr1 이라는 배열의 0번째 부터 복사할 것이다. arr2의 배열의 0번부터 쓸것이고 arr2의 길이는 3이다. arr2에 남은 자리가 있다면 0으로 채운다. 


int[] arr1 = {5,4,3};
int[] arr2 = new int[4];

System.arraycopy(arr1, 0, arr2, 0, 3);

for(int a : arr2)
    System.out.print(a + " ");

String[] arr1 = {"C", "C++", "Java", "Python"};
String[] arr2 = new String[10];

System.arraycopy(arr1, 0, arr2, 0, 4);

for(String a : arr2)
    System.out.print(a + " ");

 위는 남은 부분을 0으로 문자열의 경우는 null 값으로 채워진다.