Programming/Java

[Java] 문자열이란 ?

NegotiationMan 2022. 12. 29. 23:44

String 타입의 변수 선언과 할당

문자열이란 문자들로 구성된 문장을 뜻한다.

  • "Hello Java"
  • "a"
  • "123"

기본적으로 String 타입은 큰따옴표(" ")로 감싸진 문자열을 의미한다.

// 문자열 리터럴을 String 타입의 변수 name에 할당하는 방법
String name1 = "Hello World!";

// String 클래스의 인스턴스를 생성하는 방법
String name2 = new String("Hello World!");

문자열 내장 메서드

String 자료형 내장 메서드 중 자주 사용하는 메서드 정리

 

equals

equals는 두 개의 문자열이 동일한지를 비교하여 결과값을 리턴한다.

String a = "Hello";
String b = "java";
String c = "Hello";
System.out.println(a.equals(b)); // false 출력
System.out.println(a.equals(c)); // true 출력

System.out.println(a == c);  // false

== 연산자를 사용할 경우에는 false를 출력한다.

a와 c의 값은 같지만 서로 다른 객체이다. ==은 두개의 자료형이 동일한 객체인지를 판별하는 연산자이기 때문에 false를 리턴한다.

 

indexOf

indexOf는 문자열에서 특정 문자열이 시작되는 위치(인덱스)를 리턴한다.

String str = "Hello Java";
System.out.println(str.indexOf("Java"));  // 6 출력

 

contains

contains는 문자열에서 특정 문자열이 포함되어 있는지의 여부를 리턴한다.

String str = "Hello Java";
System.out.println(str.contains("Java"));  // true 출력

 

charAt

charAt은 문자열에서 특정 위치의 문자(char)를 리턴한다.

String str = "Hello Java";
System.out.println(str.charAt(0));  // 0번째 인덱스 'H' 출력

 

replaceAll

replaceAll은 문자열 중 특정 문자열을 다른 문자열로 바꾸고자 할 때 사용한다.

String str = "Hello Java";
System.out.println(str.replaceAll("Java", "World"));  // Hello World 출력

 

substring

substring은 문자열 중 특정 부분을 뽑아낼 경우에 사용한다.

String str = "Hello Java";
System.out.println(str.substring(0, 4));  // Hell 출력

문자열의 시작위치에서 끝위치 -1 까지의 문자를 뽑아내게 된다.

 

toUpperCase

toUpperCase는 문자열을 모두 대문자로 변경할 때 사용한다. (모두 소문자로 변경할때는 toLowerCase를 사용한다.)

String str = "Hello Java";
System.out.println(str.toUpperCase());  // HELLO JAVA 출력

 

split

split 메서드는 문자열을 특정 구분자로 나누어 문자열 배열로 리턴하는 메서드이다.

String a = "a:b:c:d";
String[] result = a.split(":");  // result는 {"a", "b", "c", "d"}

위의 예처럼 "a:b:c:d" 라는 문자열을 ":" 문자로 나누어 {"a", "b", "c", "d"} 문자열 배열

 

문자열 포맷

문자열 포매팅이란 문자열 안에 어떤 값을 삽입하는 방법이다.

int num1 = 1;
int num2 = 2;
System.out.println(num1+"+"num2+"="+(num1+num2));  // "1 + 2 = 3" 출력
int num1 = 1;
int num2 = 2;
System.out.println(String.format("%d + %d = %d",num1, num2, num1+num2)); // "1 + 2 = 3" 출력

문자열 포맷 코드

코드 설명
%s 문자열 (String)
%c 문자 1개 (character)
%d 정수 (Integer)
%f 부동 소수 (floating-point)
%o 8진수
%x, %X 16진수 (소문자, 대문자)
%% Literal % (문자 %자체)

포맷 코드와 숫자 함께 사용

포맷 코드를 숫자와 함께 사용하면 더 유용하게 사용할 수 있다. 

 

1. 정렬과 공백

System.out.println(String.format("%10s", "hi"));  // "        hi" 출력
System.out.println(String.format("%-10sjane.", "hi"));  // "hi        jane." 출력

2. 소수점 표현하기

System.out.println(String.format("%.4f", 3.42134234));  // 3.4213 출력
System.out.println(String.format("%10.4f", 3.42134234));  // '    3.4213' 출력

소수점 네 번째 자리까지만 나타내고 반올림하기

 

System.out.printf

System.out.printf 메서드를 사용하면 String.format 메서드 없이도 동일한 형식으로 포매팅된 문자열을 출력할 수 있다.

System.out.printf("I eat %d apples.", 3);  // "I eat 3 apples." 출력