본문 바로가기
JAVA/[JAVA] 바구니

[JAVA] String Class

by oncerun 2020. 5. 8.
반응형

java.lang 패키지안에 존재하는 클래스입니다.

 

 

생성자

 

byte []을 문자열로 변환하는 생성자.

파일의 내용을 읽거나, 네트워크를 통해 받은 데이터는 보통 byte [] 배열로 받아 문자열로 변환합니다.

 

package constructor;

public class ByteStringProgram {

public static void main(String[] args) {

byte[] bytes= {72,101,108,101,11,32,34,97,68};
// 키코드로 인식됩니다.
String str1 = new String(bytes);
//전체 바이트항목을 문자로변환을해 문자열로 반환해줍니다.
System.out.println(str1);

}

}

 

 

package constructor;

import java.io.IOException;

public class ByteStringProgram1{

public static void main(String[] args) throws IOException {

byte[] bytes= new byte[100];

System.out.println("입력");
int readBytes = System.in.read(bytes);//실제로 읽은 바이트 수를 반환합니다.

String str = new String(bytes,0,readBytes-2);
//-2를 해주는이유는 \r \n 때문이다.
System.out.println(str);
}

}

 

 

 

String 이 가지고 있는 메서드

 

String은 문자열의 추출, 비교, 찾기, 분리, 변환 등과 같은 다양한 메서드가 있습니다.

리턴 타입

메서드명(매개변수)

설명

char

charAt(int index)

특정 위치의 문자 리턴

boolean

equals(Object obj)

두 문자열을 비교

byte []

getByte()

byte []로 리턴

byte []

getByte(Charset charset)

주어진 문자셋으로 인코딩한 byte []로 리턴

int

indexOf(String str)

문자열 내에서 주어진 문자열의 위치를 리턴

int 

length()

총문자의 수를 리턴

String

replace(CharSequence target,

Charsequence replacement)

target부분을 replacement로 대치한 새로운 문자열을 리턴

String

subString(int beginIndex)

begin위치에서 끝까지 잘라낸 새로운 문자열을 리턴

String

subString(int beginIndex, int endIndex)

begin~end까지 잘라낸 새로운 문자열을 리턴

String

toLowerCase()

알파벳을 소문자로 변환해 새로운 문자열 리턴

String

toUpperCase()

알파벳을 대문자로 변환해 새로운 문자열 리턴

String

trim()

앞뒤 공백을 제거한 새로운 문자열 리턴

String

valueOf(int i) , 

valueOf(double, d)

기본 타입 값을 문자열로 리턴

 

문자 추출 charAt()

String subject = "javaProgram";
char charvalue = subject.charAt(3); //0번째부터~ 3번째 인덱스에 해당되는 문자를 가져옵니다

 

 

문자열 비교 equals()

 

new를 사용해 String 객체를 만드는 것과

리터럴 형태로 String str = "문자열"; 만드는 것과는 다릅니다.

리터럴이 같은 경우에는 하나의 String 객체가 사용되고

new연산자를 사용하면 새로운 객체가 생성됩니다.

public class StringProgram1{

public static void main(String[] args) throws IOException {

String a = new String("a");
String a1 = "a";
String a2 = "a";

System.out.println(a == a1);
System.out.println(a == a2);
System.out.println(a1 == a2);
}
}

하지만 문자열의 값이 같을 때 같다고 정의하고 싶다면 equals()를 사용합니다.

public class StringProgram1{

public static void main(String[] args) throws IOException {

String a = new String("a");
String a1 = "a";
String a2 = "a";

System.out.println(a == a1);
System.out.println(a == a2);
System.out.println(a1 == a2);

System.out.println(a.equals(a1));
System.out.println(a.contentEquals(a2));
}


}

 

 

바이트 배열로 변환 getBytes()

 

시스템의 기본 문자셋으로 인코딩 된 바이트 배열 얻고 다시 문자열로 디코딩하기

public class GetByte{

public static void main(String[] args) throws IOException {

byte[] bytes = "문자열".getBytes();
//다시 디코딩하기
String str = new String(bytes);

}
}

 

원하는 charSet으로 설정한 뒤 다시 String으로 디코딩하기(소문자도 상관없다.)

public class GetByte{

public static void main(String[] args) throws IOException {

//원하는 charSet
byte[] bytes = "문자열".getBytes("UTF-8");

//디코딩
String str = new String(bytes , "UTF-8");

}
}

try {} catch블록이 필요합니다. 입력된 charSet이 부적합할 경우 발생될 예외입니다.

복원할 때 charSet값이 같아야 합니다.

 

반응형

'JAVA > [JAVA] 바구니' 카테고리의 다른 글

[JAVA] Enumeration Type  (0) 2020.05.13
[JAVA] String Class(2)  (0) 2020.05.12
[JAVA] Arrays 클래스  (0) 2020.05.07
[JAVA] Map Colletion  (0) 2020.05.03
[JAVA] Set Collection  (0) 2020.05.02

댓글