개발자꿈나무
String 클래스 본문
- join()과 StringJoiner
- join()은 여러 문자열 사이에 구분자를 넣어 결합한다. split()과 반대로 생각하면 쉬움!
String animals = "dog,cat,bear";
String[] arr = animals.split(",");
String str = String.join("-", arr);
// str : dog-cat-bear;
- java.util.StringJoiner클래스를 사용해서 문자열 결합도 가능!
StringJoiner sj = new StringJoiner("," , "[" , "]"); // ,단위로 charsequence 시작 끝
String[] strArr = { "aaa", "bbb", "ccc" };
for(String s : strArr) {
sj.add(s.toUpperCase()); }
System.out.println(sj.toString()); // [AAA,BBB,CCC]
- 문자 인코딩 변환하기
- getBytes(String charsetName)를 사용하면, 문자열의 문자 인코딩을 다른 인코딩으로 변경할 수 있다.
//짧은 예시
byte[] utf8_str = "가".getBytes("UTF-8"); // 문자열을 UTF-8로 변환
String str = new String(utf8_str, "UTF-8"); // byte배열을 문자열로 변환
public static void main(String[] args) throws UnsupportedEncodingException
{
String str = "가";
byte[] bArr = str.getBytes("UTF-8");
byte[] bArr2 = str.getBytes("CP949");
System.out.println("UTF-8: "+new String(bArr,"UTF-8"));
System.out.println("CP949: "+new String(bArr2,"CP949"));
//java.lang.String.String(byte[] bytes, String charsetName
}
- String.format()
- 형식화된 문자열을 만들어내는 간단한 방법으로 printf()하고 사용법이 같음
String str = String.format("%d 더하기 %d는 %d입니다.", 3, 5, 3+5);
System.out.println(str); // 3 더하기 5는 8입니다.
- 기본값과 String과의 변환
- 기본값 ==> String : 숫자에 빈 문자열을 더해주거나 valueOf()를 사용하면 간단!
int i = 100;
String str1 = i + ""; // 100 ==> "100"
String str2 = String.valueOf(i); // 100 ==> "100"
- String ==> 기본값 : 마찬가지로 valueOf()를 쓰거나 parseInt()를 사용하면 된다.
// 여러 가지 방법 사용해보기
public static void main(String[] args)
{
int iVal = 100;
String strVal = String.valueOf(iVal); // int를 String으로 변환
double dVal = 200.0;
String strVal2 = dVal + ""; // String으로 변환하는 다른 방법
double sum = Integer.parseInt("+".trim()+strVal+Double.parseDouble(strVal2));
double sum2 = Integer.valueOf(strVal+Double.valueOf(strVal2));
System.out.println(String.join("",strVal,"+",strVal2,"=")+sum);
System.out.println(strVal+"+"+strVal2+"="+sum2);
}
- substring()
- 한 문자열에서 내용의 일부를 추출할 때 사용
- substring(int start, int end)를 사용할 때 start는 범위에 포함이 되지만 end는 결과에 포함되지 않는다.
public static void main(String[] args)
{
String fullName = "Hello.java";
//fullName에서 '.'의 위치 찾는다.
int index = fullName.indexOf('.');
//fullName의 첫번째 글자부터 '.'이 있는 곳까지 문자열 추출.
String fileName = fullName.substring(0, index);
//'.'의 다음 문자부터 시작해서 문자열의 끝까지 추출.
String ext = fullName.substring(index+1);
System.out.println(fullName + "의 확장자를 제외한 이름은 "+fileName);
System.out.println(fullName + "의 확장자는 "+ext);
//Hello / java
}
728x90
'자바' 카테고리의 다른 글
컬렉션 프레임워크 기본개념 (0) | 2023.01.26 |
---|---|
StringBuffer 클래스 (0) | 2023.01.25 |
자바 - String 객체에 대해서 알아보기 (0) | 2023.01.10 |
자바 - Math.round(), 나머지, 비교, 논리, 삼항, 대입 연산자 (0) | 2022.12.30 |
자바 - 연산자, 형변환 (0) | 2022.12.29 |