오늘도 문자열과 관련된 다양한 Java API를 정리해보았다.
오늘안에 못올릴줄 알았는데...ㅎㅎ
문자열 탐색
- indexOf( )
//Hello World에서 'l'의 인덱스 반환하기.
String str = "Hello World";
char ch = 'l';
System.out.println(str.indexOf(ch));
// 2
* 찾을 문자열.indexOf(찾을 문자) ;
문자열 변환
- substring( ) - 인덱싱
String str = "hello world";
String substr = str.substring(1,6);// 1포함 5 전까지
System.out.println(str + " --.substring(1,5)--> [" + substr+"]");
// hello world --.substring(1,5)--> [ello ]
substr = str.substring(3); // 3부터 끝까지
System.out.println(str + " --.substring(3)--> [" + substr+"]");
//hello world --.substring(3)--> [lo world]
* 문자열.substring( start idx, end idx ); 일때, start idx부터 end idx -1까지 반환한다.
- concat( ) - 합치기
// Hello와 !!!!!합치기
String str1 = "Hello";
String str2 = "!!!!!";
String str = str1.concat(str2);
System.out.println("concat(str1,str2) 결과 : " + str);
// concat(str1,str2) 결과 : Hello!!!!!
* 기준이 되는 문자열.concat(붙일 문자열);
- replace( ) - 대체
String str = "hello world";
System.out.println("replace()전 결과 : "+str);
// replace()전 결과 : hello world
str = str.replace('l', 'r'); // l이면 전부 r로 바꿔준다.
System.out.println("replace후() 결과 : "+str);
// replace후() 결과 : herro worrd
str = str.replace("rr", "l"); // 문자열로도 치환할 수 있다.
System.out.println("replace후() 결과 : "+str);
//replace후() 결과 : helo wold
* 바꾸기 전의 문자열.replace( 바꾸고싶은 값(문자열/문자), 바꿀 값(문자열/문자) );
- trim( ) - 시작과 끝부분 공백제거(중간은 제거 x)
String str = " hello ";
System.out.println("trim()전 결과 : ["+str+"]의 길이 : "+str.length());
// trim()전 결과 : [ hello ]의 길이 : 11
str = str.trim();
System.out.println("trim()후 결과 : ["+str+"]의 길이 : "+str.length());
// trim()후 결과 : [hello]의 길이 : 5
* 제거할 문자열.trim( );
- toLowerCase( ) - 모두 소문자로 반환 / toUpperCase( ) - 모두 대문자로 반환
String str = "Hello World!";
System.out.println("str : "+ str);
// str : Hello World!
System.out.println("toLowerCase() : "+str.toLowerCase());
//toLowerCase() : hello world!
System.out.println("toUpperCase() : "+str.toUpperCase());
// toUpperCase() : HELLO WORLD!
- split( ) - 문자열을 쪼개서 배열에 넣어 반환
import java.util.Arrays;
String str = "홍길동전:허균:조선시대";
String[] strArr = str.split(":");
System.out.println(str + " --split(\":\")--> "+Arrays.toString(strArr));
// 홍길동전:허균:조선시대 --split(":")--> [홍길동전, 허균, 조선시대]
* 문자열.split("기준이되는 부호"); -> 기준이되는 부호가 : 이면, :를 기준으로 3단어로 쪼개짐.
String ip = "192.168.5.203";
String[] ipArr = ip.split(".");
System.out.println(ip+ " --split(\".\")--> "+Arrays.toString(ipArr));
// 192.168.5.203 --split(".")--> []
* ipArr은 왜 빈리스트일까?
---> split( )에 입력한 "."은 인식하지 못하기 때문에 따로 기호를 써서 표시해주어야 한다.
import java.util.Arrays;
String ip = "192.168.5.203";
String[] ipArr = ip.split(".");
ipArr = ip.split("\\.");
System.out.println(ip+ " --split(\".\")--> "+Arrays.toString(ipArr));
// 192.168.5.203 --split(".")--> [192, 168, 5, 203]
* "."이아닌 "\\."으로 써주어야 인식한다.
형의 변환
- valueOf( )
int num = 123;
String strNum = num+"";
System.out.println("strNum+100 : "+strNum+100);
// strNum+100 : 123100
* int형에 +""를 해주면 String형으로 바뀐다.
* String타입인 strNum에 +100을 해주면 정수로 더해지지 않고 100이 문자처럼 뒤에 붙는다.
strNum = String.valueOf(num); // string형으로 바뀐다.
System.out.println(strNum+10); // 12310
//boolean형처럼 보이지만 String으로 인식하게 된다.
System.out.println(String.valueOf(true)); // true
System.out.println(String.valueOf(true)+false); // truefalse
'Java' 카테고리의 다른 글
[Java 기초 공부 07] 자바 객체지향 문법 (0) | 2021.03.29 |
---|---|
[Java 기초 공부 05] 문자열01 (0) | 2021.03.21 |
[Java 기초 공부 04] 연산자 (0) | 2021.03.20 |
[Java 기초 공부 03] 자바 자료형과 형변환 (0) | 2021.03.19 |
[Java 기초 공부 02] 자바 기본 명령어 (0) | 2021.03.18 |