String 문자열 비교, 연산 (Java)

최우정·2022년 4월 28일
post-thumbnail

📒 String 클래스에서 제공하는 문자열 비교 메서드

int compareTo(String s): 문자열을 사전 순으로 비교해 정숫값을 반환한다.
int compareToIgnoreCase(String s) : 대, 소문자를 무시하고, 문자열을 사전 순으로 비교한다.
boolean equals(String s): 주어진 문자열 s와 현재 문자열을 비교한 후 true/false를 반환한다.
boolean equalsIgnoreCase(String s): 주어진 문자열 s와 현재 문자열을 대, 소문자 구분 없이 비교한 후 true/false를 반환한다.

✏️ 문자열 내용 비교 예시

package study05;

public class String2Demo {
	public static void main(String[] args) {
		String s1 = "Hi, Java!"; // s1 필드에 String 넣음
		String s2 = new String("Hi, Java!"); // 객체 s2에 String 넣음
		String s3 = "Hi, Code!";
		String s4 = "Hi, java!";

		System.out.println(s1.equals(s2)); // 현재 문자열 비교하고 true/false
		System.out.println(s1.equals(s3));
		System.out.println(s1.equals(s4));
		System.out.println(s1.equalsIgnoreCase(s4)); // 대소문자 무시하고 true/false

		System.out.println(s1.compareTo(s3)); // 사전순으로 비교하여 정숫값 반환 (J-C)
		System.out.println(s1.compareToIgnoreCase(s4)); // 대소문자 구분 없이 사전순으로 정숫값 반환
		System.out.println(s3.compareTo(s4)); // (C-j)
		System.out.println("Hi, Java!".compareToIgnoreCase("Hi, java!"));
	}

	// 대문자 65~90 소문자 97~122부터 시작
}

📒 String 클래스에서 제공하는 유용한 메서드

char charAt(int index): index가 지정한 문자를 반환
String concat(String s): 주어진 문자열 s를 현재 문자열 뒤에 연결
boolean contains(String s): 문자열 s를 포함하는지 조사
boolean endsWith(String s): 끝나는 문자열이 s인지 조사
int indexOf(String s): 문자열 s가 나타난 위치를 반환
boolean isBlank(): 길이가 0 혹은 공백 있으면 true 반환 (자바 11부터)
boolean isEmpty(): 길이가 0이면 true 반환
int length(): 길이를 반환
String repeat(int c): c번 반복한 문자열을 반환(자바 11부터)
boolean startsWith(String s): 시작하는 문자열이 s인지 조사
String substring(int index): index부터 시작하는 문자열의 일부를 반환
String toLowerCase(): 모두 소문자로 변환
String toUpperCase(): 모두 대문자로 변환
String trim(): 앞뒤에 있는 공백을 제거한 후 반환

✏️ String 클래스의 메서드 이용

package study05;

public class String3Demo {
	public static void main(String[] args) {
		String s1 = new String("Hi,"); // 객체 생성
		String s2 = new String(" Java");

		System.out.println("문자열 길이(s1) : " + s1.length());
		System.out.println(s1.charAt(1)); // s1의 1번 인덱스 반환

		s1 = s1.concat(s2); // s1 = s1뒤에 s2 연결

		System.out.println(s1.concat(s2) + "!"); // s1뒤에 s2연결
		System.out.println(s1.toLowerCase() + "!"); // s1을 모두 소문자로 변환
		System.out.println(s1.substring(4, 8) + "!"); // index(4)부터 (8)까지 문자열 반환

		String s3 = " ";
		System.out.println(s3.isEmpty()); // 길이가 0이면 true 반환
		System.out.println(s3.isBlank()); // 길이가 0이거나 공백 true 반환
		String s4 = "";
		System.out.println(s4.isEmpty());
		System.out.println(s4.isBlank());

		String s5 = "*-*";
		System.out.println(s5.repeat(10)); // (10)번 반복한 문자열 반환

		System.out.println(s2.trim().indexOf("v")); // 앞뒤에 있는 공백 제거 후 v까지 반환

		System.out.println(s2.startsWith("J")); // s2의 시작하는 문자열이 J인지 조사 (공백 미허용)
		
	}
}

📒 String 클래스에서 제공하는 유용한 정적 메서드

String format(): 주어진 포맷에 맞춘 문자열을 반환
String join(): 주어진 구분자와 연결한 문자열을 반환(자바 8부터)
String valueOf(): 각종 기초 타입이나 객체를 문자열로 반환

package study05;

public class String5Demo {
	public static void main(String[] args) {
		String version = String.format("%s %d", "JDK", 14);
		System.out.println(version);

		String fruits = String.join(", ", "apple", "banana", "cherry", "durian");
		System.out.println(fruits);

		String pi = String.valueOf(3.14);
		System.out.println(pi);

	}
}
profile
비전공자 Java, JavaScript, Html, Css, C++ 공부중

0개의 댓글