카테고리 없음
String 실습 두번째
달덩이><
2022. 9. 23. 20:44
1. 문자열 내용 비교하기 (.equals())
package p01.basic;
// 문자열 내용 (contents) 비교하기 : s1.equals(s2)
// - equals의 return값이 true이면 s1과 s2의 문자열 내용이 동일하다는 의미, false이면 동일하지 않음
// - toLowerCase()나 toUpperCase()로 변환하여 equals 사용하는 것이 의미 있는 경우도 많음
public class StringBasic6 {
public static void main(String[] args) {
String s1 = "Welcome to Java";
String s2 = "Welcome to Java";
String s3 = "welcome to java";
if (s1.equals(s2)) {
System.out.println("s1과 s2의 문자열 내용이 같습니다.");
} else {
System.out.println("s1과 s2의 문자열 내용이 다릅니다.");
}
if (s1.equals(s3)) {
System.out.println("s1과 s3의 문자열 내용이 같습니다.");
} else {
System.out.println("s1과 s3의 문자열 내용이 다릅니다.");
}
if (s1.toUpperCase().equals(s3.toUpperCase())) {
System.out.println("s1과 s3의 문자열 대문자로 변환한 내용이 같습니다.");
} else {
System.out.println("s1과 s3의 문자열 대문자로 변환한 내용이 다릅니다.");
}
}
}
- 1. 문자열 내용을 비교하기 위해서는 .equals를 사용해줍니다.
- 2. 사용 방법은 s1의 내용과 s2의 내용을 비교하기 위해서는 s1.equals(s2)라고 해주면 됩니다.
- => equals의 return 값이 true이면 두 문자열 내용이 같다는 의미이고, false이면 다르다는 의미입니다.
- 3. 아래 Console 결과중 마지막 결과는 toUpperCase()를 사용하여 s1과 s3의 대문자로 변환하여 비교한 결과입니다.
2. 문자열 크기 비교하기 (.compareTo())
package p01.basic;
// 문자열 크기 비교 : s1.compareTo(s2) 메소드
// 1. s1과 s2의 문자열을 알파벳순서로 비교하는데 첫번째 문자부터 비교함
// 2. compareTo 메소드 실행 결과
// - s1의 문자열 > s2의 문자열 => 양수의 값을 return
// - s1의 문자열 < s2의 문자열 => 음수의 값을 return
// - s1의 문자열 == s2의 문자열 => 0을 return
public class StringBasic7 {
public static void main(String[] args) {
String s1 = "apple11";
String s2 = "banana";
String s3 = "pineapple";
String s4 = "banana";
System.out.println(s1 + "과 " + s2 + "의 크기 비교 : " + s1.compareTo(s2));
System.out.println(s1 + "과 " + s3 + "의 크기 비교 : " + s1.compareTo(s3));
System.out.println(s2 + "과 " + s1 + "의 크기 비교 : " + s1.compareTo(s1));
System.out.println(s2 + "과 " + s4 + "의 크기 비교 : " + s1.compareTo(s4));
System.out.println("kiwi와 orange의 크기 비교 :" + "kiwi".compareTo("orange"));
}
}
- 1. 문자열의 크기를 비교하기 위해서는 .compareTo()를 사용합니다.
- 2. 사용방법은 s1.compareTo(s2)로 사용하면 됩니다.
- => s1과 s2의 문자열을 알파벳 순서로 비교하는데 첫번째 문자부터 비교합니다.
3. 전체 문자열에서 일부 문자열 가져오기 (substring(startIndex, endIndex))
package p01.basic;
// 전체 문자열에서 일부 문자열 가져오기 : substring(startIndex, endIndex) method
// 1. startIndex = 0부터 시작, 일부 문자열 가져오기에 포함
// 2. endIndex는 일부 문자열 가져오기에 불포함
// (endIndex-1의 문자까지 가져옴)
// 3. startIndex값은 있고 endIndex값이 없는 경우
// - startIndex부터 문자열 끝까지의 데이터를 가져옴
// - 예 : massage.substring(0)
public class StringBasic8 {
public static void main(String[] args) {
String message = "Welcome to Java";
System.out.println(message.substring(0, 5));
System.out.println(message.substring(0, 7));
System.out.println(message.substring(0, 11));
System.out.println(message.substring(2, 5));
System.out.println(message.substring(2, 7));
System.out.println(message.substring(2, 11));
System.out.println(message.substring(0));
System.out.println(message.substring(2));
}
}
- 1. 전체 문자열에서 일부 문자열을 가져오기 위해서는 substring(startIndex, endIndex) method를 사용해주면 됩니다.
- => startIndex는 0부터 시작하고, 일부 문자열 가져오기에 포함됩니다.
- => endIndex는 일부 문자열 가져오기에 불포함합니다.
- 2. 위에 있는 코딩을 보면 message.substring(0, 5)인 경우 처음부터 5번째 자리에 있는 문자열을 가져와서 welco까지만 출력합니다.
- 3. message.substring(2, 5)인 경우에는 두번째 자리부터 5번째 자리에 있는 문자열을 가져와서 lco라는 값을 출력합니다.
- 4. message.substring(0)인 경우에는 startIndex부터 endIndex까지 모든 문자열 데이터를 가져와서 welcome to Java가 출력됩니다.
4. 문자열에서 찾고자 하는 문자 또는 문자열의 시작 index 가져오기 (indexOf)
package p01.basic;
// 문자열에서 찾고자 하는 문자 또는 문자열의 시작 index 가져오기
// 1. indexOf(char 또는 String, startIdex)
// - starIndex부터 시작하여 찾고자하는 문자나 문자열이 있으면 시작 index를 가져옴
// - 단, startIndex가 주어지지 않으면, startIndex는 0부터 시작한다고 가정함
// - 만약 찾고자 하는 문자나 문자열이 없으면 -1을 가져옴
// - 문자나 문자열을 찾을 때 대소문자 구분하여 찾음
// 2. lastIndexOf : 문자열의 끝 index부터 시작하여 찾음
public class StringBasic9 {
public static void main(String[] args) {
System.out.println("Welcome to Java".indexOf('W'));
System.out.println("Welcome to Java".indexOf('o'));
System.out.println("Welcome to Java".indexOf('o', 5));
System.out.println("Welcome to Java".indexOf("come"));
System.out.println("Welcome to Java".indexOf("comet"));
System.out.println("Welcome to Java".indexOf("Java", 5));
System.out.println("Welcome to Java".indexOf("java" , 5));
System.out.println("Welcome to Java".toUpperCase().indexOf("JAVA", 5));
System.out.println();
System.out.println("Welcome to Java".lastIndexOf('W'));
System.out.println("Welcome to Java".lastIndexOf('o'));
System.out.println("Welcome to Java".lastIndexOf('o', 5));
System.out.println("Welcome to Java".lastIndexOf("come"));
System.out.println("Welcome to Java".lastIndexOf("comet"));
System.out.println("Welcome to Java".lastIndexOf("Java", 5));
System.out.println("Welcome to Java".lastIndexOf("java" , 5));
System.out.println("Welcome to Java".toUpperCase().lastIndexOf("JAVA", 5));
}
}
- 1. 문자열에서 찾고자 하는 문자나 문자열의 시작 index를 가져오기 위해서 indexOf()를 사용합니다.
- 2. 먼저 System.out.println("Welcome to Java".indexOf('W'));라고 하면 w의 자리인 0을 가져옵니다.
- 3. System.out.println("Welcome to Java".indexOf('o'));라고 하면 o가 있는 자리인 4를 가져옵니다.
- => ※여기서 startIndex가 0부터 시작해서 'o'는 다섯번째에 있지만 4를 출력합니다.
- 4. System.out.println("Welcome to Java".indexOf('o', 5));라고 하면 여기서 5는 startIndex이므로 5번째 자리인 m부터 시작하기 때문에 m 뒤에 있는 o가 10번째에 있으므로 9를 출력합니다.
- 4. lastIndexOf는 문자열의 끝 index부터 시작하여 찾습니다.
- 5. System.out.println("Welcome to Java".lastIndexOf('W'));라고 뒤부터 시작하므로 가장 앞의 있는 W인 0을 출력한다.
- 6. System.out.println("Welcome to Java".lastIndexOf('o')); 라고 하면 뒤부터 시작해 가장 먼저 나온 o가 10번째 자리이므로 9를 출력한다.
- 7. System.out.println("Welcome to Java".lastIndexOf("Java", 5));인 경우는 찾고싶은 문자열이 Java인데 뒤에서 5번째부터 시작하여 찾은 결과 찾고자 하는 값이 없어서 -1이라는 값을 출력한다.
5. 문자열내부에서 특정 문자를 다른 문자로 바꾸기 (replace)
package p01.basic;
// 문자열내부에서 특정 문자를 다른 문자로 바꾸기 : replace
// 1. replace ( oldChar, newChar)
// -문자열내에서 oldChar를 newChar로 바꾸기
public class StringBasic10 {
public static void main(String[] args) {
String s1 = "apple";
System.out.println(s1.replace('p', 'n'));
}
}
- 1. 문자열내부에서 특정 문자를 다른 문자로 바꾸기 위해서는 replace()를 사용해줍니다.
- 2. 위 코딩과 같이 s1에 "apple"이라는 값을 넣어주고 s1.replace('p', 'n')을 사용해주면 p가 n으로 바껴서 "annle" 라는 문자열이 출력됩니다.
6. 2개의 도시를 입력하여 오름차순 순서로 출력하게 만드는 Quiz
package p02.practice;
import java.util.Scanner;
public class OrderTwoCities {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("첫번째 도시를 입력하세요.");
String city1 = input.nextLine();
System.out.println("두번째 도시를 입력하세요.");
String city2 = input.nextLine();
if (city1.compareTo(city2) < 0 ) {
System.out.println("2개 city의 오름차순 순서는 " + city1 + " , " + city2);
}else {
System.out.println("2개 city의 오름차순 순서는" + city2 + " , " + city1);
}
}
}
- 먼저 우리가 직접 입력을 해줘야 하기 때문에 Scanner를 사용해줍니다.
- 첫번째 도시를 city1이라고 해주고, 두번째 도시를 city2라고 해줍니다.
- 그 다음 if를 사용하고 그 안에 compareTo를 사용하여 0보다 작을 경우는 city1, city2순으로 해주고 아닐 경우는 city2, city1으로 해줍니다.
- => 예) if (city1.compareTo(city2) < 0) 이렇게 써줍니다.
오늘은 어제 다 하지 못했던 String 실습을 마무리했습니다. 다음에 시간에는 Method에 대한 실습을 해보겠습니다.
반응형