오늘은 문자열의 다양한 메서드를 이야기 하는 듯.
메서드가 무엇을 의미하는지 정확하게 모르겠어서 definition을 만들어내지는 못했으나
일단 배운거 두개.
1. .equalsIgoreCase 문자열에서 대소문자 구분 무시
2. printf에서 %s는 문자열 %d는 int 를 각각 받는다
package application;
public class App {
public static void main(String[] args) {
String name = "Joe";
if (name.equals("Joe")) {
System.out.println("1. Name is Joe");
}
if (name.equals("JOE")) {
System.out.println("2. Name is JOE!");
}
}
}
기본적으로 String 의 name 변수 값은 "Joe"로 선언
if 문이 두번 나왔는데,
하나는 .equals("Joe")
다른 하나는 .equals("JOE")
대문자로 이루어진 JOE는 무시당하고 1번만 출력된다.

대소문자 구분 없이 인식하고 싶다면?
.equalsIgnoreCase() 메서드를 쓰면된다.
package application;
public class App {
public static void main(String[] args) {
String name = "Joe";
if (name.equals("Joe")) {
System.out.println("1. Name is Joe");
}
if (name.equals("JOE")) {
System.out.println("2. Name is JOE!");
}
if (name.equalsIgnoreCase("JOE")) {
System.out.println("3. Name is Joe");
}
}
}
1번은 문자열이 정확히 일치하니 출력,
2번은 메서드가 단순히 .equals 이므로 (대소문자 구분) 출력하지 않음
3번은 대소문자 구분 무시 메서드 이므로 출력

이제 여기서 포멧을 사용해보자.
package application;
public class App {
public static void main(String[] args) {
String name = "Joe";
if (name.equals("Joe")) {
System.out.println("1. Name is Joe");
}
if (name.equals("JOE")) {
System.out.println("2. Name is JOE!");
}
if (name.equalsIgnoreCase("JOE")) {
System.out.println("3. Name is Joe");
}
System.out.printf("The length of '%s' is %d\n", name, name.length());
// %s -> String
// %d -> int
}
}
%d는 많이 봤는데 %s는 처음이다.
코드블럭에 적혀있는대로 %s는 문자열, %d는 숫자를 나타낸다.
출력값은 ... 문자(char)의 개수를 센다고 한다

지피티랑 이야기 하다보니,
%d, %s는 그냥 거들 뿐이고,
.length() 메서드가 주인공이다.
.length()는 문자열 객체가 가진 속성 중 하나로, 호출시 문자열의 길이를 숫자로 반환
여하튼 그러하다.
간단한 연습
package application;
public class Practice_01 {
public static void main (String[]args) {
String name = "Doopal Kwak";
String greeting = "Anyoung";
String word = "Baegopayo";
System.out.println("1. '" + name + "'의 길이: " + name.length()+".\n" );
System.out.println("2. name equals 'Doopal Kwak'? " + name.equals("Doopal Kwak"));
System.out.println(" name equals 'DOOPAL KWAK'? " + name.equals("DOOPAL KWAK") +"\n");
System.out.println("3. name equalsIgnoreCase 'DOOPAL KWAK'? "+ name.equalsIgnoreCase("DOOPAL KWAK") + "\n");
System.out.println("4. name.toUpperCase():" + name.toUpperCase());
System.out.println(" word.toUpperCase():" + word.toUpperCase() + "\n");
System.out.println("5. greeting contains 'Baegopayo'? " +greeting.contains("Baegopayo")+ "\n");
System.out.println("6. greeting.charAt(5):" + greeting.charAt(5)+ "\n");
System.out.println("7. greeting.substring(1,5): " +greeting.substring(1,5)+"\n");
String padded =" ohhmygosh ";
System.out.println("8. trim(): '" + padded.trim() + "'");
}
}
과 그 출력물

번외)
궁금증.
substring에서 (1,5)의 의미는
1부터 5직전까지 인것 같음 즉,
1,2,3,4
왜 저렇게 표현하는가?
1. 반개방 구간 (half-open interval)
2. 길이 바로 계산 가능
int length = end - start;
// 5 - 1 = 4
// 추출된 문자열 길이가 바로 나옴
3. 연속된 구간 연결이 쉬움 (<--얜 무슨말인지 모르겠음)
s.substring(0, 1) + s.substring(1, 5)
4. 인덱스 0부터 시작하는 관습과 맞춤
- 배열 , 문자열 등 대부분 0부터 세므로, 끝값 제외가 계산하게 편함
하여간 오늘은 여 기까지.. 해피코딩//.
'콤퓨타 > Programming) 왕초보 자바' 카테고리의 다른 글
| 31. (Loops and Conditions) Stream Loops (0) | 2025.08.20 |
|---|---|
| 30. (Loops and Conditions) Exercise (0) | 2025.08.20 |
| 28. (Loops and Conditions) Flags (4) | 2025.08.19 |
| 27. (Loops and Conditions) Checking Password with Do-While (feat. 챗지피티 활용 위기관리) (6) | 2025.08.17 |
| 27. (Loops and Conditions) Variable Scope (6) | 2025.08.14 |