자바의 정석 - String 생성자

Yohan·2024년 2월 2일
0

String 클래스의 생성자와 메서드

  • String(char[ ] value)
    • 주어진 문자열(value)을 갖는 String 인스턴스를 생성 (배열 -> 문자열)
    • 문자열 -> 배열은 toCharArray() 사용!
char[] c = {'H', 'e', 'l', 'l', 'o'};
String s = new String(c);

// s = "Hello"
  • String(StringBuffer buf)
    • StringBuffer는 내용변경 가능한 문자열
    • String은 내용변경 불가능한 문자열
    • StringBuffer인스턴스가 갖고 있는 문자열과 같은 내용의 String 인스턴스를 생성한다. (StringBuffer -> String으로 바꿀 때 아래와 같은 코드 사용)
StringBuffer sb = new StringBuffer("Hello");
String s = new String(sb);

// s = "Hello"
  • char charAt(int index)
    • 지정된 위치(index)에 있는 문자를 알려준다. (index는 0부터 시작)
String s = "Hello";
String n = "0123456";
char c = s.charAt(1);
char c2 = n.charAt(1);

// c = 'e'
// c2 = '1'
  • int compareTo(String str)
    • 문자열(str)과 사전순서로 비교. 같으면 0, 사전순으로 이전이면 음수, 이후면 양수를 반환
int i = "aaa".compareTo("aaa");
int i2 = "aaa".compareTo("bbb");
int i3 = "bbb".compareTo("aaa");

// i = 0
// i2 = -1
// i3 = 1
  • String concat(String str)
    • 문자열(str)을 뒤에 덧붙인다.
String s = "Hello";
String s2 = s.concat(" World");

// s2 = "Hello World"
  • boolean contains(CharSequence s)
    • 지정된 문자열(s)이 포함되었는지 검사한다.
String s = "abcdefg";
boolean b = s.contains("bc");

// b = true
  • boolean endsWith(String suffix)
    • 지정된 문자열(suffix)로 끝나는지 검사한다.
String file = "Hello.txt";
boolean b = file.endsWith("txt");

// b = true
  • boolean equals(Object obj)
    • 매개변수로 받은 문자열(obj)과 String 인스턴스의 문자열을 비교한다. obj가 String이 아니거나 문자열이 다르면 false 반환
String s = "Hello";
boolean b = s.equals("Hello");
boolean b2 = s.equals("hello");

// b = true
/// b2 = false
  • boolean equalsIgnoreCase(String str)
    • 문자열과 String 인스턴스의 문자열을 대소문자 구분없이 비교한다.
String s = "Hello";
boolean b = s.equalsIgnoreCase("HELLO");
boolean b2 = s.equalsIgnoreCase("heLLo");

// b = true
/// b2 = true
  • int indexOf(int ch)
    • 주어진 문자(ch)가 문자열에 존재하는지 확인하여 위치(index)를 알려준다. 못 찾으면 -1을 반환한다. (index는 0부터 시작)
String s = "Hello";
int idx1 = s.indexOf('o');
int idx2 = s.indexOf('k');

// idx1 = 4
// idx2 = -1
  • int indexOf(int ch, int pos)
    • 주어진 문자(ch)가 문자열에 존재하는지 지정된 위치(pos)부터 확인하여 위치(index)를 알려준다. 못 찾으면 -1을 반환한다. (index는 0부터 시작)
String s = "Hello";
int idx1 = s.indexOf('e', 0);
int idx2 = s.indexOf('e', 2);

// idx1 = 1
// idx2 = -1
  • int indexOf(String str)
    • 주어진 문자열이 존재하는지 확인하여 위치(index)를 알려준다. 없으면 -1을 반환한다. (index는 0부터 시작)
String s = "ABCDEFG";
int idx = s.indexOf("CD");

// idx = 2 (문자열이 시작하는 곳의 인덱스 반환)
  • int lastIndexOf(int ch)
    • 지정된 문자 또는 문자코드를 문자열의 오른쪽 끝에서부터 찾아서 위치(index)를 알려준다. 못 찾으면 -1을 반환한다.
String s = "java.lang.Object";
int idx1 = s.lastIndexOf('.');
int idx2 = s.indexOf('.');

// idx1 = 9
// idx2 = 4
  • int lastIndexOf(String str)
    • 지정된 문자열을 인스턴스의 문자열 끝에서부터 찾아서 위치(index)를 알려준다. 못 찾으면 -1을 반환한다.
String s = "java.lang.java";
int idx1 = s.lastIndexOf("java");
int idx2 = s.indexOf("java");

// idx1 = 9
// idx2 = 4
  • int length()
    • 문자열의 길이를 알려준다.
String s = "Hello";
int length = s.length();

// length = 5
  • String[ ] split(String regex)
    • 문자열을 지정된 분리자(regex)로 나누어 문자열 배열에 담아 반환한다.
String animals = "dog,cat,bear";
String[ ] arr = animals.split(",");

// arr[0] = "dog"
// arr[1] = "cat"
// arr[2] = "bear"
  • String[ ] split(String regex, int limit)
    • 문자열을 지정된 분리자(regex)로 나누어 문자열 배열에 담아 반환한다. 단, 문자열 전체를 지정된 수(limit)로 자른다.
String animals = "dog,cat,bear";
String[ ] arr = animals.split(",",2); // 두 부분으로 나눈다는 뜻!

// arr[0] = "dog"
// arr[1] = "cat,bear"
  • boolean startsWith(String prefix)
    • 주어진 문자열(prefix)로 시작하는지 검사한다.
String s = "java.lang.Object";
boolean b = s.startsWith("java");
boolean b2 = s.startsWith("lang");

// b = true
// b2 = false
  • String substring(int begin)
  • String substring(int begin, int end)
    • 주어진 시작위치(begin)부터 끝 위치(end)범위에 포함된 문자열을 얻는다. 이 때, 시작위치의 문자는 범위에 포함되지만 끝 위치의 문자는 포함되지 않는다. (begin <= x < end)
String s = "java.lang.Object";
String c = s.substring(10); // 10부터 끝까지
String p = s.substring(5,9); // 5 ~ 8까지
  • String toLowerCase()
    • String 인스턴스에 저장되어있는 모든 문자열들을 소문자로 변환하여 반환한다.
String s = "Hello";
String s1 = s.toLowerCase();

// s1 = "hello"
  • String toUpperCase()
    • String 인스턴스에 저장되어있는 모든 문자열들을 대문자로 변환하여 반환한다.
String s = "Hello";
String s1 = s.toUpperCase();

// s1 = "HELLO"
  • String trim()
    • 문자열의 왼쪽 끝과 오른쪽 끝에 있는 공백을 없앤 결과를 반환한다. 이 때 문자열 중간에 있는 공백은 제거되지 않는다.
String s = "    Hello World    ";
String s1 = s.trim();

// s1 = "Hello World"
  • static String valueOf(boolean b)
  • static String valueOf(char c)
  • static String valueOf(int i)
  • static String valueOf(long l)
  • static String valueOf(float f)
  • static String valueOf(double d)
  • static String valueOf(object o)
    • 지정된 값을 문자열로 변환하여 반환한다. 참조변수의 경우, toString()을 호출한 결과를 반환
String b = String.valueOf(true);
String c = String.valueOf('a');
String i = String.valueOf(100);
String l = String.valueOf(100L);
String f = String.valueOf(10f);
String d = String.valueOf(10.0);
java.util.Date dd = new java.util.Date();
String date = String.valueOf(dd);

// b = "true"
// c = "a"
// i = "100"
// l = "100"
// f = "10.0"
// d = "10.0"
// date = "Wed Jan 27 21:26:29 KST 2016"
profile
백엔드 개발자

0개의 댓글