본문 바로가기
IT/Java

Java String 문자열 기초

by 바른롱매 2019. 11. 28.

String 클래스명 == class template(형태)

str == 변수(object:객체) --> instance(주체)

String str;
str = "안녕하세요";
System.out.println("str : " + str);

---------- 자바실행 ----------
str : 안녕하세요
출력 완료 (0초 경과) - 정상 종료

new == 동적할당

String str1 = new String("하이");

문자열과 문자열을 합한다. +

String str2 = "반갑습니다";
String str3;
str3 = str1+str2;
System.out.println("str3 : " + str3);

---------- 자바실행 ----------
str3 : 하이반갑습니다
출력 완료 (0초 경과) - 정상 종료

 

concat() : 문자열을 합한다

String str4 = "건강하세요";
String str5 = "행복하세요";
String str6 = str4.concat(str5);
System.out.println("str6 : " + str6);

---------- 자바실행 ----------
str6 : 건강하세요행복하세요
출력 완료 (0초 경과) - 정상 종료

+ 와 concat() 차이점

+StringBuilder 클래스로 변환하여 append로 문자열을 더해준 뒤 toString()으로 결과값을 변환하여 넘겨줍니다.

-> 같은 주소에 문자열을 추가하는 방식

concat 은 합친 문자열을 new String으로 생성합니다.

-> 문자열을 더할 때마다 주소를 새로 할당하여 생성

2개의 문자열을 합칠 경우 concat을 사용 / 여러 문자열을 합칠 경우 +연산자를 사용하면 좋다고 합니다.


char 배열과도 합칠수 있다.

char cdata[] = {'h','e','l','l','o'};
String str6 = new String(cdata);
System.out.println("str6 : " + str6);

---------- 자바실행 ----------
str6 : hello
출력 완료 (0초 경과) - 정상 종료

equals : 문자열 비교

String str7="Hello";
String str8="Hell";
str8 = str8 +"o";
if(str7 == str8) {
	System.out.println("str7과 str8은 같다");
}
else {
	System.out.println("str7과 str8은 다르다");
}

if(str7.equals(str8) == true) {
	System.out.println("str7과 str8은 같다");
}
else {
	System.out.println("str7과 str8은 다르다");
}

boolean b = str7.equals(str8);
if(b == true) {
	System.out.println("str7과 str8은 같다");
}
else {
	System.out.println("str7과 str8은 다르다");
}

---------- 자바실행 ----------
str7과 str8은 다르다
str7과 str8은 같다
str7과 str8은 같다
출력 완료 (0초 경과) - 정상 종료

equals와 == 차이점

equals는 객체가 가지고 있는 내용(값)을 비교하기 위한 메소드

==는 객체가 같은지 다른지 비교하는 비교연산자

int(원시형)에는 equlas X


indexOf : 문자 검색을 위한 함수. 앞부분부터찾는다. 찾은 문자의 index 번호를 돌려준다.

String str9 = "abcdeabcdeabcde";
int n = str9.indexOf("d");
System.out.println("n = " + n);

---------- 자바실행 ----------
n = 3
출력 완료 (0초 경과) - 정상 종료

lastindexOf : 뒤에서 부터 찾아노는 검색함수

String str9 = "abcdeabcdeabcde";
n = str9.lastIndexOf("d");
System.out.println("n = " + n);

---------- 자바실행 ----------
n = 13
출력 완료 (0초 경과) - 정상 종료

length == 문자열길이

String str9 = "abcdeabcdeabcde";
int len = str9.length( );
System.out.println("len = " + len);

---------- 자바실행 ----------
len = 15
출력 완료 (0초 경과) - 정상 종료

replace == 수정

String str10 = "A*B*C*D";
String repStr = str10.replace("*", "-");
System.out.println("repStr = " + repStr);

---------- 자바실행 ----------
repStr = A-B-C-D
출력 완료 (0초 경과) - 정상 종료


str10 = "\"속살 드러낸 달의 뒷면\"..미·러 실패한 '달 맨틀' 연구, 중국이 성공";
repStr = str10.replace(".", "__");
System.out.println("repStr = " + repStr);

---------- 자바실행 ----------
repStr = "속살 드러낸 달의 뒷면"____미·러 실패한 '달 맨틀' 연구, 중국이 성공
출력 완료 (0초 경과) - 정상 종료

문자열 자르기(split)

String str11 = "홍길동-24-2001/01/13-서울시";
String splits[] = str11.split("-");
System.out.println("splits[0] = " + splits[0]);
System.out.println("splits[1] = " + splits[1]);
System.out.println("splits[2] = " + splits[2]);
System.out.println("splits[3] = " + splits[3]);

for (int i = 0; i < splits.length; i++) {
	System.out.println("splits["+i+"] = " + splits[i]);
}

---------- 자바실행 ----------
splits[0] = 홍길동
splits[1] = 24
splits[2] = 2001/01/13
splits[3] = 서울시
splits[0] = 홍길동
splits[1] = 24
splits[2] = 2001/01/13
splits[3] = 서울시
출력 완료 (0초 경과) - 정상 종료

문자열 자르기(substring)

String str11 = "홍길동-24-2001/01/13-서울시";
String substr = str11.substring(4);
System.out.println(substr);

---------- 자바실행 ----------
24-2001/01/13-서울시
출력 완료 (0초 경과) - 정상 종료

substr = str11.substring(4,6);
System.out.println(substr);

---------- 자바실행 ----------
24
출력 완료 (0초 경과) - 정상 종료

모든 문자 -> 대문자 toUpperCase

String str12 = "abcABC";
String upStr = str12.toUpperCase();
System.out.println(upStr);

---------- 자바실행 ----------
ABCABC
출력 완료 (0초 경과) - 정상 종료

모든 문자 -> 소문자 toLowerCase

String lowStr = str12.toLowerCase();
System.out.println(lowStr);

---------- 자바실행 ----------
abcabc
출력 완료 (0초 경과) - 정상 종료

ASCII

char c = 'A'; // ASCII A -> 65 a -> 97 32
System.out.println(c);
System.out.println((char)(c+32));

---------- 자바실행 ----------
A
a
출력 완료 (0초 경과) - 정상 종료

toString 문자열로 표현하는 함수

String str = "ABCDEFG";
System.out.println(str.toString());

---------- 자바실행 ----------
ABCDEFG
출력 완료 (0초 경과) - 정상 종료

File file = new File("C\\test");
System.out.println(file.toString());

---------- 자바실행 ----------
C\test
출력 완료 (0초 경과) - 정상 종료

trim 공백을 제거하는 함수(앞부분과 뒤부분)

String str14 = " java java java ";
String trimStr = str14.trim();
System.out.println(trimStr);

---------- 자바실행 ----------
java java java
출력 완료 (0초 경과) - 정상 종료

valueOf 숫자 -> 문자열, 문자열 -> 숫자

int num=123;
long lo = 1234L;
double d=123.4567;
String snum = String.valueOf(num);
String slo = String.valueOf(lo);
String sd = String.valueOf(d);
System.out.println(num);
System.out.println(lo);
System.out.println(d);

String _snum = num + "";
String _sd = d + "";

contains 탐색

String str15 = "서울시 강남구";
boolean rb;
rb = str15.contains("서울");
if(rb == true) {
	System.out.println("문자열을 찾았습니다.");
}else {
	System.out.println("문자열을 찾지못했습니다.");
}

---------- 자바실행 ----------
문자열을 찾았습니다.
출력 완료 (0초 경과) - 정상 종료

charAt : index번호를 넣으면 문자를 돌려준다.

String str16 = "가나다라마";
char ch = str16.charAt(2);
System.out.println(ch);

---------- 자바실행 ----------
다
출력 완료 (0초 경과) - 정상 종료

 

'IT > Java' 카테고리의 다른 글

Java 배열의 기초  (0) 2020.02.13
Java 계산기 만들기  (0) 2020.02.07
Java 반복문 기초  (0) 2020.02.07
이클립스(Eclipse) UTF-8 인코딩(Encoding) 설정  (0) 2019.11.21
[JAVA] JDK설치 및 환경변수 설정  (0) 2019.11.21

댓글