문자열(String)

kmb·2022년 5월 21일
0

자바

목록 보기
20/31
post-thumbnail

String 클래스는 아래와 같이 선언할 수 있다.

<String 클래스의 선언>

public final class String extends Object
    implements java.io.Serializable, Comparable<String>, CharSequence

String class 앞에 final이 선언되어 있으니 String 클래스는 더이상 확장 할 수 없다. 즉 자식 클래스를 양산할 수 없다.
(Object 클래스는 확장한 것을 볼 수 있지만, 모든 클래스의 부모 클래스가 Object이므로 따로 확장한 클래스가 없다는 의미)

String은 Serializable, Comparable< String>, CharSequence 인터페이스를 implements 한 클래스이므로 해당 인터페이스들의 기본적으로 선언된 메소드들을 구현해야한다.

Serializable 인터페이스는 특이하게 구현해야 할 메소드가 하나도 없다. 단 Serializable 인터페이스를 선언하면,
해당 객체를 파일로 저장하거나 다른 서버에 전송 가능한 상태가 된다.

Comparable< String> 인터페이스는 compareTo( ) 메소드가 선언되어있으며 매개변수로 넘어가는 객체와 현재 객체가 같은지를 비교하는데 사용된다. 반환 타입은 int (순서상으로 앞에있으면 -1, 뒤에있으면 1을 반환)

CharSequence 인터페이스는 해당 클래스가 문자열을 다루기 위한 클래스라는 것을 명시적으로 나타내는 데 사용된다.


String 클래스의 메서들중 많이 쓰이는것들을 나열했다.

  1. valueOf( )
int i = 1234;

var s = String.valueOf(i);
System.out.println(s);	// String타입
		
var parseInt = Integer.parseInt("1234");
System.out.println(parseInt);	// int타입

2.equals( )

String str = null;

boolean result = "kmb".equals(str);		
System.out.println("result : " + result);

만약 boolean result = "kmb".equals(str) 가 아닌
boolean result1 = str.equals("kmb") 처럼
입력변수를 앞에두고 비교할문자를 .equals( ) 안에 두게되면 NPE가 발생한다.

  1. startsWith( ), contains( )
String sw = "bestjavagood";
		
if(sw.startsWith("java") || sw.contains("java")) {
	System.out.println("java 문자열");
}else {
	System.out.println("java 문자열 X");
}

.startsWith( ) 는 맨앞에 해당 문자열이 있는지를 판별하며
.contains( ) 는 해당 문자열이 포함이 되있는지만을 판별한다.

  1. split( )
String ymd = "2021-08-01";
String [] symd = new String[3];
		
for(String arr : symd = ymd.split("-")) 
System.out.println(arr);		

.split( ) 는 ( )내부기준으로 자르겠다는 의미이다.

  1. join( )
var join = String.join("", symd);
System.out.println(join);

배열 내부의 값들을 결합해서 하나의 문자열을 만든다

  1. replaceAll( ), reaplce( )
String rep = "qqqwwweeeqwerraqwe";
		
var replaceAll = rep.replaceAll("[qwe]", "리");		 
System.out.println("replaceAll : " + replaceAll);		
		
var replace = rep.replace("qwe", "리");	
System.out.println("reaplce : " + replace);

.replaceAll( ) 은 정규표현식을 사용하여 "[ ]" 내부에 있는 문자들을 전부 치환할수있다.
.replace( ) 는 "" 내부의 문자열만 치환할 수있다.

  1. substring(index), substring(index1, index2)
String sub1 = "123가나다!@#";
String sub2 = "123가나다!@#";
		
var substringSingle = sub1.substring(1);		
System.out.println("substringSingle : " + substringSingle);
		
var subStringDouble = sub2.substring(2, 5);	
System.out.println("subStringDouble : " + subStringDouble );

단일 index는 해당 index부터 그 이후의값들을 return 하고
다중 index는 시작 index부터 끝 index -1 까지 값을 return한다.

profile
꾸준하게

0개의 댓글