타 언어에서 문자열을 char형의 배열로 다루나 자바에서는 문자열을 위한 클래스를 제공한다.
문자열 관련 메서드는 방대하며 아래는 자주 사용될것들으로 이해한다.
물론 이도 양이 상당하다.
String(String s)
String(char[] value)
주어진 문자열을 갖는 String 인스턴스를 생성한다.
String str1 = new String("Hello");
System.out.println(str1); // 출력: Hello
char[] charArray = {'H', 'e', 'l', 'l', 'o'};
String str2 = new String(charArray);
System.out.println(str2); // 출력: Hello
String (StringBuffer buf)
StringBuffer인스턴스가 갖고있는 문자열과 같은 내용의 String 인스턴스를 생성한다.
StringBuffer buffer = new StringBuffer("Java");
String str3 = new String(buffer);
System.out.println(str3); // 출력: Java
char chartAt(int index)
지정된 index에 있는 문자를 알려준다.
String str4 = "Hello";
char result4 = str4.charAt(2);
System.out.println(result4); // 출력: l
int compareTo(String str)
문자열과 사전순서로 비교해 같으면 0을, 사전순으로 이전이면 음수를, 이후면 양수를 반환한다.
String str5a = "apple";
String str5b = "banana";
int result5 = str5a.compareTo(str5b);
System.out.println(result5); // 출력: -1
String concat(String str)
문바열을 뒤에 덧붙인다
String str6a = "Hello";
String str6b = "World";
String result6 = str6a.concat(str6b);
System.out.println(result6); // 출력: HelloWorld
boolean contains(CharSequence s)
지정된 문자열이 포함되어있는지 검사한다.
String str7 = "Hello, World!";
boolean result7 = str7.contains("World");
System.out.println(result7); // 출력: true
boolean endsWith (String suffix)
지정된 문자열로 끝나는지 검사한다.
String str8 = "Hello, World!";
boolean result8 = str8.endsWith("World!");
System.out.println(result8); // 출력: true
boolean equals (Object obj)
매개변수로 받은 문자열과 String인스턴스의 문자열을 비교해 obj가 String이 아니거나 문자열이 다르면 false를 반환한다.
String str9a = "Hello";
String str9b = new String("Hello");
boolean result9 = str9a.equals(str9b);
System.out.println(result9); // 출력: true
boolean equalsIgnoreCass(String str)
문자열과 String인스턴스의 문자열을 대소문자 구분없이 비교한다.
String str10a = "Hello";
String str10b = "hello";
boolean result10 = str10a.equalsIgnoreCase(str10b);
System.out.println(result10); // 출력: true
int indexof(int ch)
주어진 문자가 문자열에 존재하는지 확인하여 index를 알려준다. 못찾으면 -1를 반환한다.
String str11 = "Hello";
int result11 = str11.indexOf('l');
System.out.println(result11); // 출력: 2
int indexOf(int ch, int pos)
주어진 문자가 문자열에 존재하는지 지정된 위치부터 확인하여 index를 알려준다. 못찾으면 -1를 반환한다.
String str12 = "Hello";
int result12 = str12.indexOf('l', 3);
System.out.println(result12); // 출력: 3
int indexOf(String str)
주어진 문자열이 존재하는지 확인하여 index를 알려준다.
String str13 = "Hello, World!";
int result13 = str13.indexOf("World");
System.out.println(result13); // 출력: 7
String intern()
문자열을 상수풀에 등록한다. 이미 같은 내용의 문자열이 있능령우 그 문자열의 주소값을 반환한다.
* 상수풀에 등록하면 다른문자열이 같은 내용을 가질때 해당 문자열을 찾아 사용하게 함으로써 메모리를 절약하고 효율적으로 처리될 수 있도록 도와준다.
String str14a = "Hello";
String str14b = new String("Hello");
String internedStr = str14b.intern();
System.out.println(internedStr); // 출력: Hello
int lastIndexOf(int ch)
int lastInfexOf(String str)
지정된 문자/문자열을 문자열의 오른족 끝에서부터의 index를 알려준다.
String str15 = "Hello";
int result15 = str15.lastIndexOf('l');
System.out.println(result15); // 출력: 3
String str16 = "Hello, World!";
int result16 = str16.lastIndexOf("l");
System.out.println(result16); // 출력: 10
int length()
문자열의 길이
String str17 = "Hello";
int len17 = str17.length();
System.out.println(len17); // 출력: 5
String replace (char old, char nw)
문자열 중 문자 old를 새로운 문자 nw로 바꾼 문자열을 반환한다.
String str18 = "Hello";
String result18 = str18.replace('l', 'L');
System.out.println(result18); // 출력: HeLLo
String replace(CharSequence old, CharSequence nw)
문자열 중 문자 old를 새로운 문자열 nw로 바꾼 문자열을 반환한다.
String str19 = "Hello, World!";
String result19 = str19.replace("World", "Universe");
System.out.println(result19); // 출력: Hello, Universe!
String replaceAll(String regex, String replacement)
문자열 중 모든 문자 old를 새로운 문자열 nw로 바꾼 문자열을 반환한다.
replace와 차이점은 정규식을 적용할 수 있다는점이다.
String originalString = "Hello123World456";
String stringWithoutNumbers = originalString.replaceAll("[0-9]", "");
System.out.println("Original String: " + originalString);
System.out.println("String without Numbers: " + stringWithoutNumbers);
//Original String: Hello123World456
//String without Numbers: HelloWorld
String replaceFirst(String regex, String replacement)
문자열 중에서 지정된 문자열과 첫번째로 일치하는 문자열만 변경한다.
String str21 = "apple apple orange";
String result21 = str21.replaceFirst("apple", "banana");
System.out.println(result21); // 출력: banana apple orange
String[] split (String regex)
문자열을 지정된 분리자로 나누어 배열에 담아 반환한다.
String str22 = "apple,banana,orange";
String[] result22 = str22.split(",");
System.out.println(Arrays.toString(result22)); // 출력: [apple, banana, orange]
String[] split (String regex, int limit)
문자열을 지정된 분리자로 나누어 배열에 담아 반환하되 문자열 전체를 지정된 배열 갯수로 자른다.
String str23 = "apple,banana,orange";
String[] result23 = str23.split(",", 2);
System.out.println(Arrays.toString(result23)); // 출력: [apple, banana,orange]
boolean startWith(String prefix)
주어진 문자열로 시작하는지 검사한다.
String str24 = "Hello, World!";
boolean result24 = str24.startsWith("Hello");
System.out.println(result24); // 출력: true
String substring(int begin)
String substring(int begin, int end)
주어진 시작위치부터 끝위치 범위에 포함된 문자열을 얻는다.
*끝위치의 문자는 포함되지않는다
String str25 = "Hello, World!";
String result25 = str25.substring(7);
System.out.println(result25); // 출력: World!
String toLowerCase()
모든 문자열을 소문자로 변환해 반환한다.
String str27 = "Hello";
String result27 = str27.toLowerCase();
System.out.println(result27); // 출력: hello
String toString()
문자열을 반환한다.
String str28 = "Hello";
String result28 = str28.toString();
System.out.println(result28); // 출력: Hello
String toUpperCase()
모든 문자열을 대문자로 변환해 반환한다.
String str29 = "Hello";
String result29 = str29.toUpperCase();
System.out.println(result29); // 출력: HELLO
String trim()
양쪽 끝의 공백을 없앤 결과를 반환한다.
*문자열 중간의 공백은 제거되지않는다.
String str30 = " Hello ";
String result30 = str30.trim();
System.out.println(result30); // 출력: Hello
static String valueOf()
지정된 값을 문자열로 반환한다.
*참조변수의 경우 toString()을 호출한 결과를 반환하여 date도 Wed jan 27 21:26:29 KST 2016 등으로 확인 가능하다.
static String valueOf(boolean b)
boolean flag34 = true;
String result34 = String.valueOf(flag34);
System.out.println(result34); // 출력: true
static String valueOf(char c)
char character35 = 'A';
String result35 = String.valueOf(character35);
System.out.println(result35); // 출력: A
static String valueOf(int i)
int number36 = 42;
String result36 = String.valueOf(number36);
System.out.println(result36); // 출력: 42
static String valueOf(long l)
long number37 = 123456789012345L;
String result37 = String.valueOf(number37);
System.out.println(result37); // 출력: 123456789012345
static String valueOf(float f)
float number38 = 3.14f;
String result38 = String.valueOf(number38);
System.out.println(result38); // 출력: 3.14
static String valueOf(double d)
double number39 = 2.71828;
String result39 = String.valueOf(number39);
System.out.println(result39); // 출력: 2.71828
static String valueOf(object o)
Object obj40 = new Object();
String result40 = String.valueOf(obj40);
System.out.println(result40); // 출력: java.lang.Object@<hashcode>
'JAVA' 카테고리의 다른 글
문자열배열을 합칠 수 있는 java.util.StringJoiner (0) | 2023.12.08 |
---|---|
문자열배열을 합칠 수 있는 join() (0) | 2023.12.08 |
클래스에서 객체를 복제하다, clone() (0) | 2023.12.08 |
예외처리: chained exception 예외와 예외를 연결하다 (0) | 2023.12.07 |
예외처리: exception re-throwing 예외 되던지기 (0) | 2023.12.07 |