개발자 도전기
[JAVA] String 본문
문자열 비교
자바의 문자열은 String 객체에 저장되며 변수에는 객체의 번지가 대입된다.
문자열 리터럴이 동일한 경우에는 String 객체를 공유한다. new 연산자로 new String 객체를 생성했다면 새로 생성된 문자열은 기존 String 객체와 변수의 번지를 공유하지 않는다.
String str1 = "abc";
String str2 = "abc";
new String str3 = "abc";
str1 == str2; // true
str2 == str3; // false
동일한 String 객체든 다른 String 객체든 상관없이 내부 문자열만을 비교할 경우에는 String 객체의 equals() 메소드를 사용한다.
boolean result = str1.equals(str2);
문자 추출
charAt() 메소드를 사용하여 문자열에서 특정 인덱스의 문자를 추출할 수 있다.
String str = "Hello World!";
str.charAt(1); // H
str.chatAt(3); // l
문자열 길이
문자열의 문자의 갯수를 얻고 싶다면 length() 메소드를 사용한다
String a = "이것이 자바다";
System.out.println(a.length()); // 7
문자열 대체
문자열에서 특정 문자열을 다른 문자열로 대체하고 싶다면 replace() 메소드를 사용한다.
// replace : 특정 문자열을 바꾼 문자열을 리턴 ( 원본 문자열이 바뀌지 않음)
String u = "java, spring, css, java, html";
String v = u.replace("java", "자바");
System.out.println(u); // "java, spring, css, java, html"
System.out.println(v); // "자바, spring, css, 자바, html"
문자열 잘라내기
문자열에서 특정 위치의 문자열을 잘라내어 가져오고 싶다면 substring() 메소드를 사용한다
substring(int i) : i에서 끝까지 잘라내기
substring(int i, j): i에서 j 앞까지 잘라내기 (j - 1)
String s = "spring boot";
// substring : 문자열의 일부분 리턴
s.substring(2, 5); // "rin"
문자열 찾기
문자열에서 특정 문자열의 위치를 찾을 때는 indexOf() 메소드를 사용한다.
indexOf() 메소드는 주어진 문자열이 시작되는 인덱스를 리턴하고 주어진 문자열이 포함되어 있지 않으면 -1을 리턴한다.
String s1 = "java, spring, css, spring, java";
int i1 = s1.indexOf("java"); // 0
int i2 = s1.indexOf("ring"); // 8
int i3 = s1.indexOf("html"); // 포함되지 않는 경우 -1 반환
주어진 문자열이 단순히 포함되어 있는지 확인하려면 contain() 메소드를 사용한다.
contain() 메소드는 boolean 값을 리턴한다
String s1 = "my name is son";
String s2 = "my name is lee";
boolean b1 = s1.contains("son"); // true
boolean b2 = s2.contains("lee"); // true
문자열 분리
문자열이 구분자를 사용하여 여러 개의 문자열로 구성되어 있을 경우, split() 메소드를 사용하여 분리할 수 있다.
String str = "java,html,css";
String[] tokens = str.split();
tokens[0] = "java";
tokens[1] = "html";
tokens[2] = "css";
대소문자 변환
String str1 = "hello world";
str1 = str1.toUpperCase(); // "HELLO WORLD"
String str2 = "HELLO WORLD";
str2 = str2.toLowerCase(); // "hello world"
빈 문자열 검사
문자열이 빈 문자열인지는 equals(""), isEmpty(), isBlank() 메소드로 확인할 수 있다
String hobby = "";
if (hobby.equals("")) {
System.out.println("hobby 변수가 참조하는 String 객체는 빈 문자열");
}
if (hobby.isEmpty()) {
System.out.println("hobby 변수가 참조하는 String 객체는 빈 문자열");
}
if (hobby.isBlank()) {
System.out.println("hobby 변수가 참조하는 String 객체는 빈 문자열");
}
'개발공부 > JAVA' 카테고리의 다른 글
[JAVA] 객체와 클래스 (0) | 2024.03.04 |
---|---|
[JAVA] 형변환 방법 모음 (0) | 2024.03.01 |
[JAVA] 2차원 배열, 다차원 배열 (0) | 2024.02.29 |
[JAVA] 배열 (0) | 2024.02.27 |
[JAVA] 참조 타입 (0) | 2024.02.27 |