산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

Java Strings 클래스: 문자열 생성 및 조작 마스터하기

Java 프로그래밍에서 널리 사용되는 문자열은 문자 시퀀스입니다. Java 프로그래밍 언어에서 문자열은 객체로 취급됩니다.

Java 플랫폼은 문자열 생성과 조작을 위한 String 클래스를 제공합니다.

문자열 생성

문자열을 생성하는 가장 직접적인 방법은 다음과 같이 쓰는 것입니다:

String greeting = "Hello world!";

코드에서 문자열 리터럴을 만날 때마다 컴파일러는 이 경우 "Hello world!"라는 값으로 String 객체를 생성합니다.

다른 객체처럼 new 키워드와 생성자를 사용하여 String 객체를 생성할 수도 있습니다. String 클래스에는 문자 배열 등 다양한 소스를 사용하여 문자열의 초기값을 제공할 수 있는 11개의 생성자가 있습니다.

예제

Live Demo
public class StringDemo {
  public static void main(String args[]) {
    char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' };
    String helloString = new String(helloArray);
    System.out.println( helloString );
  }
}

이 코드는 다음 결과를 생성합니다:

출력

hello.

참고 - String 클래스는 불변(immutable)이므로 한 번 생성되면 String 객체를 변경할 수 없습니다. 문자열 문자에 많은 수정이 필요하다면 StringBuffer와 StringBuilder 클래스를 사용해야 합니다.

문자열 길이

객체에 대한 정보를 얻기 위해 사용되는 메서드를 접근자 메서드라고 합니다. 문자열과 함께 사용할 수 있는 접근자 메서드 중 하나는 length() 메서드로, 문자열 객체에 포함된 문자 수를 반환합니다.

다음 프로그램은 String 클래스의 length() 메서드 예제입니다.

예제

Live Demo
public class StringDemo {
  public static void main(String args[]) {
    String palindrome = "Dot saw I was Tod";
    int len = palindrome.length();
    System.out.println( "String Length is : " + len );
  }
}

이 코드는 다음 결과를 생성합니다:

출력

String Length is : 17

문자열 연결

String 클래스에는 두 문자열을 연결하는 메서드가 포함되어 있습니다:

string1.concat(string2);

이는 string1에 string2가 끝에 추가된 새로운 문자열을 반환합니다. 문자열 리터럴과 함께 concat() 메서드를 사용할 수도 있습니다:

"My name is ".concat("Zara");

문자열은 더 일반적으로 + 연산자로 연결됩니다:

"Hello," + " world" + "!"

이는 다음 결과를 만듭니다:

"Hello, world!"

다음 예제를 살펴보겠습니다:

예제

Live Demo
public class StringDemo {
  public static void main(String args[]) {
    String string1 = "saw I was ";
    System.out.println("Dot " + string1 + "Tod");
  }
}

이 코드는 다음 결과를 생성합니다:

출력

Dot saw I was Tod

포맷 문자열 생성

printf()와 format() 메서드로 포맷된 숫자 출력이 가능합니다. String 클래스에는 동등한 클래스 메서드 format()이 있어 PrintStream 객체 대신 String 객체를 반환합니다.

String의 정적 format() 메서드를 사용하면 일회성 출력문 대신 재사용 가능한 포맷 문자열을 생성할 수 있습니다. 예를 들어:

예제

System.out.printf("The value of the float variable is " + "%f, while the value of the integer " + "variable is %d, and the string " + "is %s", floatVar, intVar, stringVar);

다음과 같이 작성할 수 있습니다:

String fs;
fs = String.format("The value of the float variable is " + "%f, while the value of the integer " + "variable is %d, and the string " + "is %s", floatVar, intVar, stringVar);
System.out.println(fs);

String 메서드

String 클래스에서 지원하는 메서드 목록입니다:

번호 메서드 & 설명
1char charAt(int index) - 지정된 인덱스의 문자 반환
2int compareTo(Object o) - 이 String을 다른 Object와 비교
3int compareTo(String anotherString) - 두 문자열을 사전순으로 비교
4int compareToIgnoreCase(String str) - 대소문자 무시하고 두 문자열 사전순 비교
5String concat(String str) - 지정된 문자열을 이 문자열 끝에 연결
6boolean contentEquals(StringBuffer sb) - 이 String이 지정된 StringBuffer와 같은 문자 시퀀스를 나타내면 true
7static String copyValueOf(char[] data) - 지정된 배열의 문자 시퀀스를 나타내는 String 반환
8static String copyValueOf(char[] data, int offset, int count) - 배열의 지정된 부분 문자 시퀀스 반환
9boolean endsWith(String suffix) - 이 문자열이 지정된 접미사로 끝나는지 테스트
10boolean equals(Object anObject) - 이 문자열을 지정된 객체와 비교
11boolean equalsIgnoreCase(String anotherString) - 대소문자 무시하고 이 String을 다른 String과 비교
12byte[] getBytes() - 플랫폼 기본 문자셋으로 이 String을 바이트 시퀀스로 인코딩
13byte[] getBytes(String charsetName) - 명명된 문자셋으로 이 String을 바이트 시퀀스로 인코딩
14void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) - 이 문자열의 문자들을 대상 문자 배열로 복사
15int hashCode() - 이 문자열의 해시 코드 반환
16int indexOf(int ch) - 이 문자열에서 지정된 문자의 첫 출현 인덱스 반환
17int indexOf(int ch, int fromIndex) - 지정된 인덱스부터 검색하여 첫 출현 인덱스 반환
18int indexOf(String str) - 지정된 부분문자열의 첫 출현 인덱스 반환
19int indexOf(String str, int fromIndex) - 지정된 인덱스부터 부분문자열 첫 출현 검색
20String intern() - 문자열 객체의 표준 표현 반환
21int lastIndexOf(int ch) - 지정된 문자의 마지막 출현 인덱스 반환
22int lastIndexOf(int ch, int fromIndex) - 지정된 인덱스부터 역방향 검색으로 마지막 출현
23int lastIndexOf(String str) - 지정된 부분문자열의 가장 오른쪽 출현 인덱스
24int lastIndexOf(String str, int fromIndex) - 지정된 인덱스부터 역방향으로 부분문자열 마지막 출현
25int length() - 이 문자열의 길이 반환
26boolean matches(String regex) - 이 문자열이 주어진 정규식과 매치되는지 여부
27boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) - 두 문자열 영역이 같은지 테스트
28boolean regionMatches(int toffset, String other, int ooffset, int len) - 두 문자열 영역이 같은지 테스트
29String replace(char oldChar, char newChar) - oldChar의 모든 출현을 newChar로 바꾼 새 문자열 반환
30String replaceAll(String regex, String replacement) - 주어진 정규식과 매치되는 각 부분문자열을 주어진 대체문자열로 교체
31String replaceFirst(String regex, String replacement) - 주어진 정규식과 매치되는 첫 번째 부분문자열을 교체
32String[] split(String regex) - 주어진 정규식 매치를 기준으로 이 문자열 분할
33String[] split(String regex, int limit) - 주어진 정규식 매치를 기준으로 분할(제한)
34boolean startsWith(String prefix) - 이 문자열이 지정된 접두사로 시작하는지 테스트
35boolean startsWith(String prefix, int toffset) - 지정된 인덱스부터 접두사로 시작하는지 테스트
36CharSequence subSequence(int beginIndex, int endIndex) - 이 시퀀스의 부분시퀀스인 새 문자 시퀀스 반환
37String substring(int beginIndex) - 이 문자열의 부분문자열인 새 문자열 반환
38String substring(int beginIndex, int endIndex) - 이 문자열의 부분문자열인 새 문자열 반환
39char[] toCharArray() - 이 문자열을 새 문자 배열로 변환
40String toLowerCase() - 기본 로케일 규칙으로 모든 문자를 소문자로 변환
41String toLowerCase(Locale locale) - 주어진 Locale 규칙으로 모든 문자를 소문자로 변환
42String toString() - 이 객체(이미 문자열!) 자신을 반환
43String toUpperCase() - 기본 로케일 규칙으로 모든 문자를 대문자로 변환
44String toUpperCase(Locale locale) - 주어진 Locale 규칙으로 모든 문자를 대문자로 변환
45String trim() - 앞뒤 공백을 제거한 문자열 복사본 반환
46static String valueOf(primitive data type x) - 전달된 데이터 타입 인자의 문자열 표현 반환

java

  1. Java String 마스터하기: 생성, 메서드, 모범 사례
  2. Java final 키워드 마스터: 변수, 메서드, 클래스에서의 활용
  3. Java instanceof 연산자 완벽 가이드: 기본 사용법부터 상속, 인터페이스까지
  4. Java 정적 중첩 클래스 이해: 용법, 내부 클래스와의 차이, 예제
  5. Java 익명 내부 클래스 마스터: 정의, 문법, 실전 예제
  6. Java 싱글톤 패턴 완벽 가이드: 안전하게 구현하고 사용하기
  7. Java Enum 문자열 표현 마스터: 기본값, 오버라이딩, 고급 패턴
  8. Java 리플렉션 마스터: 런타임에 클래스, 메서드, 필드 검사 및 조작
  9. Java ObjectOutputStream 마스터하기: 직렬화, 메서드, 실전 예제
  10. Java 제네릭 마스터하기: 재사용 가능하고 타입 안전한 코드 작성