String name1 = "tom"; String name2 = "tom";
- 문자열 리터럴 비교
: 참조값 비교시true
// name1 과 name2의 참조값이 동일하다. boolean isEqual = name1 == name2; // 참조값 비교 System.out.println(isEqual); // true
String name1 = new String("tom"); String name2 = new String("tom");
- 문자열 객체 비교
: 참조값 비교시false
// name1과 name2의 참조값이 다르다. boolean isEqual = name1 == name2; // 참조값 비교 System.out.println(isEqual); // false
true
, 아니면 false
를 반환String name1 = new String("tom"); String name2 = new String("tom"); String name3 = new String("Tom"); // "tom"과 "tom" 문자열 비교 boolean isEqual1 = name1.equals(name2); // true System.out.println(isEqual1); // 대소문자도 일치해야 동일한 문자열로 인식한다. boolean isEqual2 = name1.equals(name3); // false System.out.println(isEqual2); // 대소문자를 무시하고 문자열을 비교 (Case : upper case, lower case) boolean isEqual3 = name1.equalsIgnoreCase(name3); // true System.out.println(isEqual3);
toUpperCase
메소드 : 모두 대문자로 변환toLowerCase
메소드 : 모두 소문자로 변환String name = "Tom"; System.out.println(name.toUpperCase()); // TOM System.out.println(name.toLowerCase()); // tom
String name = "Tom cruise\n"; // 이스케이프 문자(\n 줄바꿈)는 1글자로 계산하여 글자수에 포함된다. int length = name.length(); // 11글자 System.out.println(length);
String name = "tom"; char ch1 = name.charAt(0); char ch2 = name.charAt(1); char ch3 = name.charAt(2); System.out.println(ch1 + ", " + ch2 + ", " + ch3); // t, o, m
substring(int begin)
: 인덱스 begin부터 끝까지 반환substring(int begin, int end)
: 인덱스 begin 부터 end 이전까지 반환(begin <= 추출범위 < end)String name = "tom cruise"; String firstname = name.substring(0, 3); // tom; String lastname = name.substring(4); // cruise; System.out.println(firstname); System.out.println(lastname);
-1
을 반환indexOf(String str)
: 인덱스 0부터 String str을 검색indexOf(String str, int index)
: 인덱스 index부터 String str을 검색String statement = "걱정한다고 걱정이 없어지면 걱정이 없겠네"; int idx1 = statement.indexOf("걱정"); // 0 int idx2 = statement.indexOf("걱정", idx1 + 1); //6 int idx3 = statement.indexOf("걱정", idx2 + 1); // 15 int idx4 = statement.indexOf("tom"); // -1 System.out.println(idx1); System.out.println(idx2); System.out.println(idx3); System.out.println(idx4);
String statement = "걱정한다고 걱정이 없어지면 걱정이 없겠네"; int idx = statement.lastIndexOf("걱정"); // 15 System.out.println(idx);
true
반환, 아니면 false
반환String email = "admin@naver.com"; // @가 포함되어 있는가? if(email.contains("@")) { System.out.println("@가 포함되어 있다."); } else { System.out.println("@가 포함되어 있지 않다."); }
true
반환, 아니면 false
반환빈 문자열
: ""
처럼 문자열의 길이가 0인 문자열 String name = ""; if(name.isEmpty()) { System.out.println("이름이 없다."); } else { System.out.println("이름이 있다."); }
true
반환, 아니면 false
반환if(name.isBlank()) { System.out.println("이름이 없다."); } else { System.out.println("이름이 있다."); }
String
클래스를 이용해서 호출함// 숫자 형식 int number = 100; // 10진수 100 System.out.println(String.format("%o", number)); // %o : 8진수로 표시 System.out.println(String.format("%d", number)); // %d : 10진수로 표시 System.out.println(String.format("%x", number)); // %x : 16진수로 표시(0~9, a~f) 소문자 System.out.println(String.format("%X", number)); // %X : 16진수로 표시(0~9, A~F) 대문자 // 문자열 형식 String str = "hello"; System.out.println(String.format("%s", str)); // %s : 문자열로 표시 // 출력 폭 조정 System.out.println(String.format("%5d", number)); // 5자리 10진수로 표시, 숫자를 오른쪽 정렬 처리 System.out.println(String.format("%-5d", number)); // 5자리 10진수로 표시, 숫자를 왼쪽 정렬 처리 System.out.println(String.format("%05d", number)); // 5자리 10진수로 표시, 숫자를 오른쪽 정렬 처리, 빈 자리를 0으로 채움 System.out.println(String.format("%10s", str)); // 10자리 문자열 표시, 문자열을 오른쪽 정렬 처리 System.out.println(String.format("%-10s", str)); // 10자리 문자열 표시, 문자열을 왼쪽 정렬 처리
String name = "\n tom \n"; String str1 = name.strip(); System.out.println(str1.length()); // 3
String str2 = name.trim(); System.out.println(str2.length()); // 3
String ip = "192.168.0.101"; String str = ip.replace(".", "_"); // 192_468_0_101 System.out.println(str);
(replace : 문자열을 전달해서 변환 / replaceAll : 정규식 패턴을 전달하여 변환)
Java.lang.StringBuffer
JDK 1.0
부터 사용 가능하다.String
을 연결하는 클래스이다. (문자열 연결 연산자 +를 대체하는 클래스)synchronized
(동기화) 처리되어 멀티스레드 환경에서 사용할 수 있다.String
클래스에 비해서 메모리 낭비가 적다.// StringBuffer 객체 선언 StringBuffer sb; // StringBuffer 객체 생성 sb = new StringBuffer(); // append 메소드를 이용한 문자열 연결 sb.append("ha"); sb.append("va"); sb.append("na"); // StringBuffer 객체에 저장된 문자열을 String으로 변환 String str = sb.toString(); // havana System.out.println(str);
Java.lang.StringBuilder
JDK 1.5
부터 사용 가능하다.String
을 연결하는 클래스이다. (문자열 연결 연산자 +를 대체하는 클래스)synchronized
(동기화) 처리가 되지 않아 싱글스레드 환경에서 사용할 수 있다.String
클래스에 비해서 메모리 낭비가 적다.// StringBuilder 객체 선언 StringBuilder sb; // StringBuilder 객체 생성 sb = new StringBuilder(); // append 메소드를 이용한 문자열 연결 sb.append("ha"); sb.append("va"); sb.append("na"); // StringBuilder 객체에 저장된 문자열을 String으로 변환 String str = sb.toString(); // havana System.out.println(str);