문제1. String 클래스의 다양한 메소드 연습하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | package stringex; public class StringEx01 { public static void main(String[] args) { String target = "Welcome to Java World"; System.out.println(target.concat(" and workspace")); System.out.println(target.substring(11)); System.out.println(target.substring(11, 15)); System.out.println(target.replace('o', 'O')); System.out.println(target.replace("Java", "C")); System.out.println(target.toLowerCase()); System.out.println(target.toUpperCase()); } } # 실행 결과 Welcome to Java World and workspace Java World Java WelcOme tO Java WOrld Welcome to C World welcome to java world WELCOME TO JAVA WORLD | cs |
# 설명
Line 8: target 문자열 뒤에 이어 붙여준다.
Line 9: 11~끝까지의 인덱스에 해당하는 문자를 출력한다.
Line 10: 11~15번째의 인덱스에 해당하는 문자를 출력한다.
문제2. 문자열 비교하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | package stringex; public class StringEx02 { public static void main(String[] args) { String coffee1 = new String("Americano"); String coffee2 = new String("Americano"); String coffee3 = new String("AmeRicAnO"); String coffee4 = new String("Blue mountin"); String coffee5 = new String("Cappuccino"); System.out.println((coffee1 == coffee2) ? "equal" : "not equal"); System.out.println((coffee1.equals(coffee2)) ? "equal" : "not equal"); System.out.println((coffee1.equals(coffee3)) ? "equal" : "not equal"); System.out.println((coffee1.equalsIgnoreCase(coffee3)) ? "equal" : "not equal"); System.out.println(coffee4.compareTo(coffee3)); System.out.println(coffee4.compareToIgnoreCase(coffee5)); System.out.println(coffee5.endsWith("A")); System.out.println(coffee5.endsWith("o")); System.out.println(coffee5.startsWith("Ca")); } } # 실행 결과 not equal equal not equal equal 1 -1 false true true | cs |
# 설명
Line 12: == 연산자는 데이터들의 주소값까지 비교하므로 'not equal'이 반환된다. (coffee1과 coffee2는 new를 통해 각각 다른 주소값을 가지며 생성)
Line 18~19: A.compareTo(B) > A가 B보다 사전적 위치가 앞에 놓였다면 음수를, 그렇지 않으면 양수를 반환한다.
Line 20~21: endsWith(String s) > 문자열의 마지막 문자가 s이면 true를, 그렇지 않으면 false를 반환한다.
문제3. 입력한 문자열이 문자인지 숫자인지 판단하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | package stringex; import java.util.Scanner; public class StringEx03 { public static void main(String[] args) { String alphabet = "abcdefghijklmnopqrstuvwxyz"; String number = "1234567890"; System.out.print("문자나 숫자를 입력하세요: "); Scanner sc = new Scanner(System.in); String str = sc.next(); String temp = str.toLowerCase(); int alphabetIdx = alphabet.indexOf(temp); int numberIdx = number.lastIndexOf(temp); System.out.println("Input character: " + str); System.out.println("Alphabet? : " + ((alphabetIdx >= 0) ? "true" : "false")); System.out.println("Number? : " + ((numberIdx >= 0) ? "true" : "false")); } } # 실행 결과 문자나 숫자를 입력하세요: a Input character: a Alphabet? : true Number? : false 문자나 숫자를 입력하세요: 1 Input character: 1 Alphabet? : false Number? : true | cs |
# 설명
Line 15: 입력한 문자열 중에 대문자가 있을 경우 모두 소문자로 변환한다.
Line 17~18: 만약 입력한 문자열 중에 알파벳이나 숫자가 있을 경우 그 인덱스를 각각 저장한다.
Line 21~22: 저장된 인덱스가 0보다 크다면 해당 문자나 숫자가 존재하므로 false를 반환한다.
문제4. 숫자형 데이터 타입을 String 타입으로 바꾸기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | package stringex; public class StringEx04 { public static void main(String[] args) { float f = 10.2031F; String temp = String.valueOf(f); System.out.println(temp); System.out.println(temp.concat(" is String!")); } } # 실행 결과 10.2031 10.2031 is String! | cs |
# 설명
Line 7: String.valueOf(); 메소드는 오버로딩의 대표적인 예이며 문자열로 반환해준다.
문제5. 유용하게 쓰이는 format
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | package stringex; public class StringEx05 { public static void main(String[] args) { System.out.println("자릿수 맞추는 format"); System.out.println(String.format("%04d", 3)); System.out.println(String.format("%04d", 30)); System.out.println(String.format("%04d", 3000)); System.out.println(String.format("%4d", 30)); System.out.println("\n돈과 관련된 유용한 format"); System.out.println(String.format("%,d", 10000000)); System.out.println(String.format("%,.2f", 10000000F)); System.out.println("\n문자열 자릿수 맞추는데 유용한 format"); System.out.println(String.format("%10s", "abcde")); System.out.println(String.format("%10s", "abcdefghijklmnopqrstuvwxyz")); System.out.println("\n부동 소수점에 대한 유용한 format"); System.out.println(String.format("%.2f", 12345.12345)); System.out.println(String.format("%.2f", 12.1)); } } # 실행 결과 자릿수 맞추는 format 0003 0030 3000 30 돈과 관련된 유용한 format 10,000,000 10,000,000.00 문자열 자릿수 맞추는데 유용한 format abcde abcdefghijklmnopqrstuvwxyz 부동 소수점에 대한 유용한 format 12345.12 12.10 | cs |
# 설명
Line 7~9: '%04d' 는 입력한 값을 4자릿수 너비로 맞춰주는 역할을 한다.
Line 10: '0' 대신 공백으로 채워져 출력된다.
'JAVA > JAVA2' 카테고리의 다른 글
JAVA2_day08 | Date 클래스, Calendar 클래스 (0) | 2018.01.23 |
---|---|
JAVA2_day07 | 추가공부 (StringBuffer, StringTokenizer) (0) | 2018.01.23 |
JAVA2_day07 | String 메소드 연습문제 (1) (0) | 2018.01.19 |
JAVA2_day06 | 추가공부 (String 클래스의 메소드) (0) | 2018.01.18 |
JAVA2_day06 | java.lang.String (0) | 2018.01.18 |