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 |
댓글