면접준비(5)string

Tae hyun·2023년 4월 5일
0

면접준비

목록 보기
5/9

참고: 자바의 정석 3판 chapter09 java.lang패키지와 유용한 클래스 p464~474
1. String 클래스
-데이터(Char[])+메서드(문자열 관련)

-내용을 변경할 수 없는 불변클래스
-문자열의 결합이나 변경이 잦다면, 내용을 변경가능한 StringBuffer를 사용함

문자열의 비교
1)String str1="abc";
String str2="abc";

str1==str2 ? true
str1.eqals(str2)? true
String은 내용변경이 불가하기 때문에 여러 참조변수가 하나의 문자열(상수)을 공유해도됨

2)String str3 = new String("abc");
String str4 = new String("abc");

str3==str4 ? false
str3.equals(str4)? true

1번방식 권장

String 생성자

1)String(char[] value)
주어진 문자열을 갖는 String인스턴스를 생성함

char[] c =('H','e','l','l','o');
String s = new String(c);
//결과: s="Hello"

2)String(StringBuffer buf)
StringBuffer 인스턴스가 갖고 있는 문자열과 같은 내용의 String 인스턴스를 생성함

StringBuffer sb = 
	new StringBuffer("Hello");
  String s = new Stirng(sb);
 //결과: s = "Hello"

3)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'

4)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

5)String concat(String str)
문자열(str)을 뒤에 덧붙인다

String s = "Hello";
String s2 = s.concat("World")

6)boolean contains(CharSequence s)
지정된 문자열(s)이 포함되었는지 검사

String s = "abcdefg";
boolean b = s.contains("bc");
//b=true

7)boolean endsWith(String suffix)
지정된 문자열(suffix)로 끝나는지 검사한다

	String file = "Hello.txt";
    boolean b = file.endsWith("txt");
    //b=true

8)boolean equals(Object obj)

	String s = "Hello";
    boolean b = s.equals("Hello");
    boolean b2 = s.equals("hello");
    //b=true
    //b2=false

9)boolean equalsIgnoreCase(String str)
문자열과 String인스턴스의 문자열을 대소문자 구분없이 비교한다.

String s = "Hello";
boolean b = s.equalsIgnoreCase("HELLO");
boolean b2 = s.equalsIgnoreCase("heLLo");
//b=true
//b2=true

10)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

11)int indexOf(int ch, int pos)
주어진 문자(ch)가 문자열에 존재하는지 지정된 위치부터 확인하여 위치를 알려준다. 못찾으면 -1을 반환

String s = "Hello";
int idx1 = s.indexOf('e',0);
int idx2 = s.indexOf('e',2);
//idx1 = 1
//idx2=-1

12)int indexOf(String str)
주어진 문자열이 존재하는지 확인하여 그 위치를 알려준다. 없으면 -1을 반환한다.

String s = "ABCDEFG";
int idx = s.indexOf("CD");
//idx=2

13)String intern()
문자열을 상수풀(constant pool)에 등록한다.
이미 상수풀에 같은 내용의 문자열이 있을 경우 그 문자열의 주소값 반환

	String s = new String("abc");
    String s2= new String("abc");
    boolean b = (s==s2);
    boolean b2 = s.eqauls(s2);
    boolean b3 = (s.intern()==s2.intern());
    //b=false
    //b2=true
    //b3=true

14)int lastIndexOf(int ch)
지정된 문자 또는 문자코드를 문자열의 오른쪽 끝에서부터 찾아서 위치를 알려줌.못찾으면 -1 반환

	String s = "java.lang.Object";
    int idx = s.lastIndexOf('.');
    int idx2 = s.indexOf('.');
    //idx1=9;
    //idx2=4;

15)int lastIndexOf(String str)
지정된 문자열을 인스턴스의 문자열 끝에서부터 찾아서 위치를 알려준다. 못찾으면 -1반환

	String s = "java.lang.java";
    int idx1 = s.lastIndexOf("java");
    int idx2=s.indexOf("java");
    //idx=10
    //idx2=0

16)int length
문자열의 길이를 알려준다.
String s = "Hello";
int length = s.length;
//length=5

17)String replace(char old, char nw)
문자열 중의 문자(old)를 새로운 문자(nw)로 모두 바꾼후 문자열을 반환한다.

	String s="Hello";
    String sl = s.replace('H','C');
    //sl="Cello"

18)String replace(CharSequence old, CharSequence nw)

 String s = "Hellollo";
 String sl = s.replace("ll,"LL");
 //sl="HeLLoLLo

19)String replaceAll(String regex, String replacement)
문자열 중에서 지정된 문자열과 일치하는 것을 새로운 문자열로 모두 변경한다.

	String ab "AABBAABB";
    String r = ab.replaceAll("BB","bb");
    //r=AAbbAAbb

20)String replaceFirst(String regex, String replacement)
문자열 중에서 지정된 문자열과 일치하는 것 중 첫 번째 것만 새로운 문자열로 변경함

	String ab = "AABBAABB";
    String r = ab.replaceFirst("BB","bb");
    //r="AAbbAABB"

21)String[]split(String regex)
문자배열을 지정된 분리자(regex)로 나누어 문자열 배열에 담아 반환한다.

String animals = "dog,cat,bear";
String[] arr = animals.split(",");
//arr[0]="dog"
//arr[1]="cat"
//arr[2]="bear"

22)String[] split(String regex, int limit)
문자열을 지정된 분리자로 나누어 문자열배열에 담아 반환. 단, 문자열 전체를 지정된 수로 자른다.

	String animals = "dog,cat,bear";
    String[]arr = animals.split(",",2);
    //arr[0]="dog"
    //arr[1]="cat,bear"

23)boolean startsWith(String prefix)
주어진 문자열로 시작하는지 검사한다.

	String s="java.lang.Object";
    boolean b = s.startsWith("java");
    boolean b2 = s.startsWith("lang");
    //b=true //b2=false

24)String substring(int begin)
String substring(int begin, int end)
주어진 시작위치부터 끝위치 범위에 포함된 문자열을 얻는다. 이 때 시작위치의 문자는 범위에 포함되지만, 끝 위치의 문자는 포함되지 않음

String s = "java.lang.Object";
String c = s.substring(10);
String p = s.substring(5,9);
//c="Object//p=lang

25)String toLowerCase()
String 인스턴스에 저장되어있는 모든 문자열을 소문자로 변환하여 반환한다

	String s "Hello";
    String s1 = s.toLowerCase();
    //s1="hello"

26)String toString()
String 인스턴스에 저장되어 있는 문자열을 반환한다

String s ="Hello";
String s1 = s.toString();
//s1="Hello"

27)String toUperCase()
String 인스턴스에 저장되어있는 모든 문자열을 대문자로 변환하여 반환

	String s = "Hello";
    String s1 = s.toUpperCase();
    //s1="HELLO"

28)String trim()
문자열의 왼쪽끝과 오른쪽 끝에 있는 공백을 없앤 결과를 반환한다. 이 때 문자열 중간에 있는 공백은 제거되지 않는다.

	String s = "   Hello World   ";
    String s1 = s.trim();
    //s1="Hello World"

29)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)
지정된 값을 문자열로 변환하여 반환한다. 참조변수의 경우 , toStirng()을 호출한 결과를 반환한다.

String b = String.valueOf(true);
String l = String.ValueOf(100L);
stirng f = String.valueOf(10f);
java.util.Date dd = new java.util.Date();
String date = String.valueOf(dd);
//b="true"//l="100"//f="10.0"//date = "Wed Jan 27 21:26:29 KST 2016"

*String을 기본형 값으로 변환
: ValueOf()를 쓰거나 parseInt()를 사용하면 됨

 int i = Integer.parseInt("100");
 int i = Integer.valueOf("100");
profile
안녕하세요 개발하는 알파카입니다. https://github.com/oh-taehyun

0개의 댓글