반응형
- String 생성자
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
public class StringDemo {
public static void main(String[] args) {
// 문자열 -> 바이트배열
String str = "Hello Java";
byte[] hello = str.getBytes();
System.out.println(Arrays.toString(hello));
// 바이트 배열 -> 문자열
byte[] bytes1 = {72, 101, 108, 108, 111, 32, 74, 97, 118, 97};
String str2 = new String(bytes1);
System.out.println(str2);
// 6번 인덱스부터 4개 (...74, 97, 118, 97 -> 이부분 문자열로 변환)
String str3 = new String(bytes1, 6, 4);
System.out.println(str`3);
// 지정한 문자셋으로 디코딩
try {
String str4 = new String(bytes1, "utf-8");
System.out.println(str4);
String str5 = new String(bytes1, 6, 4, "utf-8");
System.out.println(str5);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
값
[72, 101, 108, 108, 111, 32, 74, 97, 118, 97]
Hello Java
Java
Hello Java
Java
import java.util.Arrays;
public class StringDemo2 {
public static void main(String[] args) {
// 문자열 -> char배열
String str = "Hello Java";
char[] charArray = str.toCharArray();
System.out.println(Arrays.toString(charArray));
// char배열 -> 문자열
char[] chArr = {'H', 'e', 'l', 'l', 'o', ' ', 'J', 'a', 'v', 'a'};
String str2 = new String(chArr);
System.out.println(chArr);
String str3 = new String(chArr, 6, 4);
System.out.println(str3);
}
}
값
[H, e, l, l, o, , J, a, v, a]
Hello Java
Java
- String 메소드 charAt(int)
import java.util.Arrays;
public class StringDemo3 {
public static void main(String[] args) {
String str = "가나다라마바사";
for (int i = 0; i < str.length(); i++) {
System.out.println(str.charAt(i));
}
System.out.println("===============");
char charAt = str.charAt(0);
System.out.println(charAt);
}
}
값
가
나
다
라
마
바
사
===============
가
- 문자열을 바이트 배열로 변환
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
public class StringDemo4 {
public static void main(String[] args) throws UnsupportedEncodingException {
String str = "안녕하세요";
byte[] bytes = str.getBytes();
byte[] bytes2 = str.getBytes("utf-8");
byte[] bytes3 = str.getBytes("EUC-KR");
System.out.println(Arrays.toString(bytes2));
System.out.println(Arrays.toString(bytes3));
String decoStr1 = new String(bytes2);
String decoStr2 = new String(bytes2, "utf-8");
String decoStr3 = new String(bytes2, "EUC-KR");
System.out.println(decoStr1); // MS949 디코딩
System.out.println(decoStr2); // UTF-8 디코딩
System.out.println(decoStr3); // EUC-KR 디코딩
}
}
값
[-20, -107, -120, -21, -123, -107, -19, -107, -104, -20, -124, -72, -20, -102, -108]
[-66, -56, -77, -25, -57, -49, -68, -68, -65, -28]
?븞?뀞?븯?꽭?슂
안녕하세요
???????몄??
- 문자열 찾기 indexOf()
public class StringDemo5 {
public static void main(String[] args) {
String message = "문자열이 시작되는 인덱스를 반환한다";
int indexOf1 = message.indexOf("문자열");
System.out.println(indexOf1);
int indexOf2 = message.indexOf("시작");
System.out.println(indexOf2);
// 문자열을 찾지 못하면 -1 반환
int indexOf3 = message.indexOf("Hello");
System.out.println(indexOf3);
}
}
값
0
5
-1
====================================================================
import java.util.ArrayList;
import java.util.List;
public class StringDemo6 {
public static void main(String[] args) {
String message = "문자열 Java 시작 Java 인덱스를 Java 반환한다.";
// 왼쪽에서 오른쪽으로 검색
// 최초로 일치하는 문자열의 시작 인덱스 반환
int indexOf1 = message.indexOf("Java");
System.out.println(indexOf1);
int indexOf2 = message.indexOf("Java", 5);
System.out.println(indexOf2);
int indexOf3 = message.indexOf("Java", 13);
System.out.println(indexOf3);
List<Integer> list = new ArrayList<Integer>();
int i = -1;
do {
int idx = message.indexOf("Java", i+1);
if(idx != -1) {
list.add(idx);
}
i = idx;
} while (i != -1);
System.out.println(list);
// 오른쪽에서 왼쪽으로 검색
int lastIndexOf = message.lastIndexOf("Java");
System.out.println(lastIndexOf);
}
}
값
4
12
22
[4, 12, 22]
22
- 문자열 대치
- replace(String, String)
public class StringDemo7 {
public static void main(String[] args) {
String oldStr = "자바는 객체지향 언어입니다. 자바는 풍부한 API를 지원합니다.";
// replace(변경할 문자, 대체할 문자)
String replace = oldStr.replace("자바", "Java");
System.out.println(replace);
// str1을 수정하는 것이 아님
// String 객체는 불변객체
String str1 = "개발자과정";
str1 += "자바"; // 새로운 객체 생성
str1 += "오라클"; // 새로운 객체 생성
str1 += "JSP"; // 새로운 객체 생성
System.out.println(str1);
}
}
값
Java는 객체지향 언어입니다. Java는 풍부한 API를 지원합니다.
개발자과정자바오라클JSP
- 문자열 추출
- substring(int)
- substring(int,int)
public class StringDemo8 {
public static void main(String[] args) {
String ssn = "880815-1234567";
// 인덱스2번부터 끝까지
String substring1 = ssn.substring(2);
System.out.println(substring1);
// 인덱스7 ~ 인덱스13 (13은 포함하지 않음)
String substring2 = ssn.substring(7, 13);
System.out.println(substring2);
}
}
값
0815-1234567
123456
- 문자열 앞뒤 공백 잘라내기 trim()
public class StringDemo9 {
public static void main(String[] args) {
// 대소문자변경
String str1 = "Java Programming";
String str2 = "JAVA PROGRAMMING";
// 작성시 변환할 문자열 드래그 한뒤 단축키 누름
// ctrl + shif + x 대문자변경
// ctrl + shif + y 소문자변경
String upperCase = str1.toUpperCase(); // 대문자로 변경
String lowerCase = str1.toLowerCase(); // 소문자로 변경
System.out.println(upperCase);
System.out.println(lowerCase);
// 대소문자 관계 없이 동등비교
System.out.println(str1.equalsIgnoreCase(str2));
// 문자열 "ja"로 시작하는가?
System.out.println(str1.startsWith("ja"));
// 문자열 "ing"로 끝나는가?
System.out.println(str1.endsWith("ing"));
// 앞뒤 공백제거
String str3 = " Java Programming ";
String trimStr3 = str3.trim();
System.out.println(trimStr3);
}
}
값
JAVA PROGRAMMING
java programming
true
false
true
Java Programming
- 문자열 변환 String.valueOf()
public class StringDemo10 {
public static void main(String[] args) {
String str1 = 10 + "";
String valueOf1 = String.valueOf(10);
String str2 = 10.5 + "";
String valueOf2 = String.valueOf(10.5);
String str3 = 10.5f + "";
String valueOf3 = String.valueOf(10.5f);
String str4 = true + "";
String valueOf4 = String.valueOf(true);
String str5 = '가' + "";
String valueOf5 = String.valueOf(str5);
String test = " "; // 공백문자
System.out.println(valueOf1);
System.out.println(valueOf2);
System.out.println(valueOf3);
System.out.println(valueOf4);
System.out.println(valueOf5);
System.out.println(test.isEmpty()); // 공백문자를 요소로 인정함
System.out.println(test.isBlank()); // 공백문자를 요소로 인정하지 않음
}
}
값
10
10.5
10.5
true
가
false
true
- split() 메소드
import java.util.Arrays;
public class StringDemo11 {
public static void main(String[] args) {
String str = "홍길동&이수홍,박연수,김자바-최명호&김길동";
String[] split1 = str.split("&|,|-");
System.out.println(Arrays.toString(split1));
String str2 = "abcdefg";
String[] split2 = str2.split("");
System.out.println(Arrays.toString(split2));
String str3 = "01 0123 345 335 111 551";
String[] split3 = str3.split(" ");
System.out.println(Arrays.toString(split3));
String str4 = "abcACdEeFfg123123123";
String[] split4 = str4.split("[a-z|A-Z]");
System.out.println(Arrays.toString(split4));
}
}
값
[홍길동, 이수홍, 박연수, 김자바, 최명호, 김길동]
[a, b, c, d, e, f, g]
[01, 0123, 345, 335, 111, 551]
[, , , , , , , , , , , 123123123]
- StringTokenizer 클래스
import java.util.StringTokenizer;
public class StringTokenDemo {
public static void main(String[] args) {
String str = "가/나/다/라/마/바/사";
StringTokenizer st = new StringTokenizer(str, "/");
while (st.hasMoreElements()) { // hasMoreElements() : 반복할 요소가 있다면
String token = st.nextToken();
System.out.println(token);
}
}
}
값
가
나
다
라
마
바
사
- StringBuffer, StringBuilder 클래스 (Buffer,Builder 같음)
public class StringBuilderExam {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("자바");
sb.append("오라클");
sb.append("JSP");
System.out.println(sb);
sb.insert(2, "abc"); // endIndex(미포함)
System.out.println(sb);
sb.replace(2, 5, "Spring");
System.out.println(sb);
sb.delete(2, 3);
System.out.println(sb);
System.out.println(sb.length());
}
}
값
자바오라클JSP
자바abc오라클JSP
자바Spring오라클JSP
자바pring오라클JSP
13
- String 클래스는 변경 할수 없다. (String은 불변객체)
글을 수정하면 수정되는게 아니라 계속 생성을 한다.
- StringBuffer, StringBuilder 클래스는 변경가능
StringBuffer, StringBuilder 사용하면 하나만 생성하고 그 값을 바꾼다.
반응형
'학습 > JAVA' 카테고리의 다른 글
13. List 인터페이스 (ArrayList) (0) | 2022.11.07 |
---|---|
11. 기본 API 클래스(2) (0) | 2022.10.27 |
11. 기본 API 클래스(1) (0) | 2022.10.26 |
10. 예외처리 (0) | 2022.10.25 |
9. 중첩 클래스와 중첩 인터페이스 (0) | 2022.10.24 |
댓글