CS/기타

[JAVA] 문자열 처리

코딩하는 포메라니안 2022. 2. 5. 22:30

1. 문자열 복사

1. System.arraycopy

- parameter = (뭐를, 어디서부터, 어디로, 어디서부터, 몇 개)

int[] arr = {1, 2, 3, 4, 5, 6};
int[] brr = {10, 20, 30, 40, 50, 60};

System.arraycopy(brr, 0, arr, 0, 3);

 

2. Arrays.copyOf

- parameter = (뭐를, 몇 개)

- 내부적으로 System.arraycopy를 호출

- 복사해서 새로운 객체를 만들어 그대로 할당 = brr을 갈아 엎는다.

int[] arr = {1, 2, 3, 4, 5, 6};
int[] brr = {10, 20, 30, 40, 50};

brr = Arrays.copyOf(arr, arr.length);
//brr = {1, 2, 3, 4, 5, 6}이 됨

 

 

 

2. 문자열 자르기

1. String객체. split()

String s = "hello world!";
//1. 문자 하나씩 자르기
//"h", "e", "l", "l", "o", " ", "w" ...
String[] char_s = s.split("");

//2. 공백 기준으로 자르기
String[] blank_s = s.split(" ");

 

2. StringTokenizer(String)

 

메서드 종류

1) hasMoreTokens() : boolean

- 남은 Token이 있으면 true, 없으면 false 반환

 

2) nextToken() : String 

- 다음 토큰 반환

 

String s = "hello world!, java";
//1. 공백 기준으로 자름
StringTokenizer st = new StringTokenizer(s);
while(st.hasMoreTokens())
	System.out.println(st.nextToken());

//2. 구분자를 기준으로 자름
st = new StringTokenizer(s, ",");

 

 

 

3. 문자열을 Char 배열로 받기

1. String객체.toCharArray()

String s = "hello world!, java";
char[] results = s.toCharArray();

 

 

 

4. 문자열 붙이기

1. String객체.concat(문자열)

- 메모리 누수가 심하다.

String s = "hello";
s = s.concat(" world");
System.out.println(s);
//hello world

 

2. "+" 연산

- 내부적으로는 StringBuilder를 계속 생성하는 구조

String s = "hello";
s = s + " world " + true + 3.3;
System.out.println(s); //hello world true3.3

//내부적으로 아래와 같이 작동
new StringBuilder(new StringBuilder(new StringBuilder(s).append("world").toString()).append(true).toString()).append(3.3).toString();

 

3. StringBuilder

- 한번에 모아서 출력

StringBuilder sb = new StringBuilder("hello");
//문자열 더하기
sb.append(" world ").append(true);
sb.append(3.3);

//문자열 자르기
sb.setLength(sb.length()-2);

//출력
System.out.println(sb.toString());

 

'CS > 기타' 카테고리의 다른 글

[JAVA] Math 클래스  (0) 2022.02.06
[JAVA] 람다 lambda  (0) 2022.02.06
[IT지식] 플랫폼 비지니스  (0) 2021.12.08
[IT지식] 클라우드  (0) 2021.12.08
[IT지식] 4차 산업 혁명  (0) 2021.12.08