문자열 관련 메서드들
1. 문자열의 길이
String s1 = "abcd";
System.out.println("s1의 length: " + s1.length());

2. 특정 index의 문자 확인하기
String s2 = "abcd";
System.out.println("s2의 charAt(2): " + s2.charAt(2));

3. 문자열 비교
System.out.println("abcd".equals("abcd"));

4. 문자열 추출
String s3 = "abcd";
// substring 함수가 문자열의 0번지 부터 시작하는지 확인. 문자열의 마지막으로 끝나는지 마지막의 -1로 끝나는지 확인.
System.out.println(s3.substring(0, 1));

5. 문자열 검색(인덱스)
String s4 = "abcd";
System.out.println(s4.indexOf("b"));

6. 문자열 포함 여부
String s5 = "abcd";
System.out.println(s5.contains("k"));

7. 문자열 대소문자 변경
String s6 = "Abcd";
System.out.println(s6.toUpperCase());
System.out.println(s6.toLowerCase());

8. 문자열 치환
int age = 10;
String s7 = "내 나이는 $age고 난 내나이 $age가 좋아".replace("$age", age + "");
System.out.println(s7);

9. 앞뒤 공백 제거
String s8 = " abcd ";
System.out.println(s8.trim());

10. 문자열 스플릿(split)
String s9 = "ab:cd";
String[] r9 = s9.split(":");
System.out.println(r9[0]);
System.out.println(r9[1]);

package ex08;
// String 관련 함수 다 사용해보기
public class Str01 {
public static void main(String[] args) {
// 1. 문자열의 길이 (할아버지 12자만 보내세요)
String s1 = "abcd";
System.out.println("s1의 length: " + s1.length());
// 2. 특정 index의 문자 확인하기
String s2 = "abcd";
System.out.println("s2의 charAt(2): " + s2.charAt(2));
// 3. 문자열 비교
System.out.println("abcd".equals("abcd"));
// 4. 문자열 추출
String s3 = "abcd";
// substring 함수가 문자열의 0번지 부터 시작하는지 확인. 문자열의 마지막으로 끝나는지 마지막의 -1로 끝나는지 확인.
System.out.println(s3.substring(0, 1));
// 5. 문자열 검색
String s4 = "abcd";
System.out.println(s4.indexOf("b"));
// 6. 문자열 포함 여부
String s5 = "abcd";
System.out.println(s5.contains("k"));
// 7. 문자열 대소문자 변경
String s6 = "Abcd";
System.out.println(s6.toUpperCase());
System.out.println(s6.toLowerCase());
// 8. 문자열 치환 (replace(), replaceAll())
int age = 10;
String s7 = "내 나이는 $age고 난 내나이 $age가 좋아".replace("$age", age + "");
System.out.println(s7);
// 9. 앞뒤 공백 제거
String s8 = " abcd ";
System.out.println(s8.trim());
// 10. 문자열 스플릿(split)
String s9 = "ab:cd";
String[] r9 = s9.split(":");
System.out.println(r9[0]);
System.out.println(r9[1]);
}
}
연습
해당 문자열을 보고 부산에 사는 고객은 몇 명인지 출력하라.
String nums = """
031)533-2112,
02)223-2234,
02)293-4444,
051)398-3434,
02)498-3434,
051)398-3434,
043)3222-3434
""";
1. 문자열을 (”,\n”)으로 나누어라
String[] splitNums = nums.split(",\n");
System.out.println(splitNums[0]);
System.out.println(splitNums[1]);
System.out.println(splitNums[2]);

2. 각각의 번호에서 앞에서 “)”까지 만 잘라라
String[] splitNums = nums.split(",\n");
System.out.println(splitNums[0].substring(0, 4));
System.out.println(splitNums[1].substring(0, 3));
System.out.println(splitNums[2].substring(0, 3));

3. 잘라낸 부분의 문자열이 “051”과 같다면 count를 올려라
int count = 0;
String[] splitNums = nums.split(",\n");
System.out.println(splitNums[0].substring(0, 3));
if (splitNums[0].substring(0, 3).equals("051")) count++;
System.out.println(splitNums[1].substring(0, 2));
if (splitNums[1].substring(0, 2).equals("051")) count++;
System.out.println(splitNums[2].substring(0, 2));
if (splitNums[2].substring(0, 2).equals("051")) count++;
System.out.println(count);

4. 변수와 상수를 표시하자
int count = 0;
int a = -1;
String[] splitNums = nums.split(",\n");
a++;
System.out.println(splitNums[a].substring(0, 3));
if (splitNums[a].substring(0, 3).equals("051")) count++;
a++;
System.out.println(splitNums[a].substring(0, 2));
if (splitNums[a].substring(0, 2).equals("051")) count++;
a++;
System.out.println(splitNums[a].substring(0, 2));
if (splitNums[a].substring(0, 2).equals("051")) count++;
System.out.println(count);

5. 반복문을 사용해보자
int count = 0;
int a = -1;
String[] splitNums = nums.split(",\n");
for (int i = 0; i < splitNums.length; i++) {
a++;
System.out.println(splitNums[a].substring(0, 3));
if (splitNums[a].substring(0, 3).equals("051")) count++;
}
System.out.println(count);

6. “)”의 위치 값을 찾아 넣어보자
int count = 0;
int a = -1;
String[] splitNums = nums.split(",\n");
for (int i = 0; i < splitNums.length; i++) {
a++;
System.out.println(splitNums[a].substring(0, splitNums[a].indexOf(")")));
if (splitNums[a].substring(0, splitNums[a].indexOf(")")).equals("051")) count++;
}
System.out.println(count);

7. 잘 나눠진 번호를 배열에 넣어보자.
int count = 0;
int a = -1;
String[] splitNums = nums.split(",\n");
String[] newNums = new String[splitNums.length];
for (int i = 0; i < splitNums.length; i++) {
a++;
int index = splitNums[a].indexOf(")");
newNums[i] = splitNums[a].substring(0, index);
}
8. 배열을 반복하면서 051번호를 찾아보자
for (int i = 0; i < newNums.length; i++) {
if (newNums[i].equals("051")) {
count++;
}
}
9. count를 출력하자
System.out.println(count);

10. 전체코드
package ex08;
// String 관련 함수 다 사용해보기
public class Str03 {
public static void main(String[] args) {
String nums = """
031)533-2112,
02)223-2234,
02)293-4444,
051)398-3434,
02)498-3434,
051)398-3434,
043)3222-3434
""";
// 부산에 사는 고객은 몇명인가요?
int count = 0;
int a = -1;
String[] splitNums = nums.split(",\n");
String[] newNums = new String[splitNums.length];
for (int i = 0; i < splitNums.length; i++) {
a++;
int index = splitNums[a].indexOf(")");
newNums[i] = splitNums[a].substring(0, index);
}
for (int i = 0; i < newNums.length; i++) {
if (newNums[i].equals("051")) {
count++;
}
}
// 4. count 변수 출력
System.out.println(count);
System.out.println("부산에 사는 고객은 2명입니다");
}
}
Share article