String (문자열)

str.replace("C", "하드웨어") str 문자열의 "C"를 하드웨어로 바꾸는 메소드 호출
str.concat("입문") str 문자열 뒤에 "입문"을 붙이는 메소드 호출

문자열의 길이와 특정 위치의 문자를 가져오는 메소드 (p385 참조)

public int length()  문자열의 길이
public char charAt(int index) 특정 위치의 문자를 가져옴
public boolean equals(String str) 문자열 데이터 비교. 문자열 비교는 반드시 equals 사용!


문자열을 조작하는 메소드
String concat(String str) 문자열 뒤에 str을 연결
String trim() 문자열 앞뒤 공백 제거
String toUpperCase() 문자열의 모든 소문자를 대문자로 교체
String toLowerCase() 문자열의 모든 대문자를 소문자로 교체
String replace(char oldChar, char newChar) 문자열에 포함된 oldChar를 모두 newChar로 교체


String 예제1. (책에 없음)

package ClassExtends;
public class String01 {
public static void main(String[] args) {
String str01 = new String("Hello Java");
char ch[] = {'H','e','l','l','o','J','a','v','a'};
String str02 = new String(ch); // ch 배열로 String에 넣음.String은 클래스이므로 생성자 방식 
String str03 = new String(); // 빈걸로 생성도 가능
if(str0.equals(str02)){ // 클래스 자체 비교가 아니라 그 안의 문자열 데이터 비교이므로 반드시 equals 사용
}
}
}

---------------------------------------------------------------------
substring
문자열의 일부를 추출하는 메소드
public String substring(int beginIndex) 시작위치에서 끝까지 문자열 리턴
public String substring(int beginIndex, intendIndex) 시작위치에서 끝 사이의 문자열 리턴

package ClassExtends;
public class StringExample6 {
public static void main(String[] args) {
String str = "뇌를 자극하는 자바";
String str2 = str.substring(3); // 3번째 위치에서 끝까지 문자열 리턴
String str3 = str.substring(3, 7); // 3번째 위치에서 7번째 사이의 문자열 리턴
System.out.println(str2);
System.out.println(str3);
}
}
자극하는 자바
자극하는




----------------------------------------------------------
indexOf
해당 검색하여 위치를 리턴
public String indexOf(int ch) ch문자를 검색해서 위치를 리턴, 데이터가 없으면 -1
public String indexOf(int ch, int fromIndex) ch문자를 fromIndex에서부터 검색해서 위치를 리턴, 데이터가 없으면 -1

package ClassExtends;
public class String03 {
public static void main(String[] args) {
String data = "이순신;100;강감찬;98";
int pos1 = data.indexOf(";");
System.out.println("처음 ; 위치"+pos1);
int pos2 = data.indexOf(";",4);
System.out.println("두번째 ; 위치"+pos2);
}
}
처음 ; 위치3
두번째 ; 위치7

-------------------------------------

public class String00 {
public static void main(String[] args) {
String name = "홍길동";
String name2 = new String("홍길동");

if(name.equals(name2)){
System.out.println("equals 비교 name name2 같다 ");
}
}
}




-------------------------------------------------------------------------------

public class String01 {
public static void main(String[] args) {
String str = "그가\"자바7은새로운 변화다\"\n라고 말했다";
System.out.println("str:"+str);
System.out.println("----------------------------");
System.out.println("str.length:"+str.length());
}
}




-------------------------------------------------------------------------------

public class String02 {
public static void main(String[] args) {
String strDate = "2002-12-30";
// String 데이터에서 0에서 4사이의 문자 추출 (substring(st, ed) )
String strYear = strDate.substring(0, 4); 
String strMonth = strDate.substring(5, 7);
String strDay = strDate.substring(8);
System.out.printf(strYear+"년 "+strMonth+"월"+strDay+"일");




----------------------------------------------------------

StringBuilder, StringBuffer
객체 내부에 있는 버퍼에 문자열 내용을 담아두고 조작하는 클래스. 하나에 둘 이상의 일을 한꺼번에 처리하는 프로그램에는 스레드가 둘 이상인데, 여러 스레드가 동시에 하나의 객체를 사용할 때 StringBuffer에는 그런 위험을 방지하는 장치가 있고, StringBuilder에는 그런 장치가 없다. 하지만 다중 스레드를 제외하고는 StringBuilder의 성능이 좋다.

1) String : 값이 변경되지 않는 character 문자열 객체

2) StringBuilder : 문자열 값 변경 가능, 동기화 불가, 단일 스레드에 사용. thread 안전장치 없음

3) StringBuffer : 문자열 값 변경 가능, 동기화 가능, 다중 스레드에 사용. thread 안전장치가 있다.

StringBuilder sb1;
sb1 = new StringBuilder("Hello");
sb2 = new StringBuilder(100);

StringBuilder append(String str)   문자열 뒤에 str 붙임
StringBuilder insert(int offset, String str)   문자열 뒤의 offset 위치에 str 삽입
StringBuilder delete(int start, int end)   start부터 end -1까지 부분 문자열 삭제
StringBuilder deleteCharAt(int index)   index 위치에 있는 하나의 문자를 삭제

----------------------------------------------------------
StringTokenizer
문자열로부터 토큰(문자열을 구성하는 단위)을 추출하는 기능.
StringTokenizer stok = new StringTokenizer("사과 배 복숭아");
str1 = stok.nexttoken();  // 첫번째 토큰에서 "사과" 리턴
str2 = stok.nexttoken(); // 2번째 토큰에서 "배" 리턴
str3 = stok.nexttoken(); // 3번째 토큰에서 "복숭아" 리턴



----------------------------------------------------------
문자열을 원하는 자료형으로 파싱하기
문자열(String)을 원하는 숫자 데이터로 변환(Parse

int a = interger.parseInt(str);
byte a = Byte.parseByte(str);
short a = Short.parseShort(str);
long a = Long.parseLong(str);
float a = Float.parseFloat(str);
double a = Double.parseDouble(str);




Posted by netyhobby
,