문자열: 문자열 유형
1. 생성자
다음과 같이 코드 코드를 복사합니다 .
String(byte[ ] bytes): 바이트 배열에서 문자열 객체를 구성합니다.
String(char[ ] value): char 배열에서 문자열 객체를 구성합니다.
String(Sting 원본): 원본의 복사본을 구성합니다. 즉, 원본을 복사합니다.
String(StringBuffer 버퍼): StringBuffer 배열을 통해 문자열 개체를 구성합니다.
예를 들어:
다음과 같이 코드 코드를 복사합니다 .
바이트[] b = {'a','b','c','d','e','f','g','h','i','j'};
char[] c = {'0','1','2','3','4','5','6','7','8','9'};
문자열 sb = 새로운 문자열(b); //abcdefghij
String sb_sub = new String(b,3,2); //de
문자열 sc = 새로운 문자열(c); //0123456789
String sc_sub = new String(c,3,2); //34
String sb_copy = new String(sb) //abcdefghij;
System.out.println("sb:"+sb);
System.out.println("sb_sub:"+sb_sub);
System.out.println("sc:"+sc);
System.out.println("sc_sub:"+sc_sub);
System.out.println("sb_copy:"+sb_copy);
출력 결과: sb:abcdefghij
sb_sub:de
sc:0123456789
sc_sub:34
sb_copy:abcdefghij
2. 방법 :
참고: ①. 모든 방법은 공개됩니다.
② 작성 형식 : [수정자] <반환 유형><메서드 이름([매개변수 목록])>
예를 들면 다음과 같습니다. static int parsInt(String s)
이 메서드(parseInt)가 클래스 메서드(정적)이고 반환 유형이 (int)이며 메서드에 String 유형이 필요함을 나타냅니다.
1. char charAt(int index): 문자열에서 특정 문자를 가져옵니다. 여기서 매개변수 인덱스는 문자열의 서수를 나타냅니다. 문자열의 서수는 0부터 시작하여 length()-1까지 이어집니다.
예: String s = new String("abcdefghijklmnopqrstuvwxyz");
System.out.println("s.charAt(5): " + s.charAt(5) );
결과는 다음과 같습니다: s.charAt(5): f
2. int CompareTo(String anotherString): 현재 String 객체를 anotherString과 비교합니다. 동일 관계는 0을 반환하고, 동일하지 않으면 비교는 두 문자열의 0번째 문자부터 시작하여 동일하지 않은 첫 번째 문자 차이를 반환합니다. 또 다른 경우에는 긴 문자열의 앞부분이 더 짧은 문자열이 됩니다. 길이 차이를 반환합니다.
3. int CompareTo(Object o): o가 String 객체이면 함수는 2와 동일하고, 그렇지 않으면 ClassCastException이 발생합니다.
예: String s1 = new String("abcdefghijklmn");
String s2 = new String("abcdefghij");
String s3 = new String("abcdefghijalmn");
System.out.println("s1.compareTo(s2): " + s1.compareTo(s2) ) //길이 차이를 반환합니다.
System.out.println("s1.compareTo(s3): " + s1.compareTo(s3) ); //'k'-'a'의 차이 결과를 반환합니다: s1.compareTo(s2): 4
s1.compareTo(s3): 10
4. String concat(String str): String 객체를 str과 연결합니다.
5. boolean contentEquals(StringBuffer sb): String 객체를 StringBuffer 객체 sb와 비교합니다.
6. 정적 문자열 copyValueOf(char[] 데이터):
7. static String copyValueOf(char[] data, int offset, int count): 이 두 가지 메소드는 생성자 중 하나와 유사하게 char 배열을 String으로 변환합니다.
8. boolean endWith(String suffix): String 객체가 접미사로 끝나는지 여부.
예: String s1 = new String("abcdefghij");
String s2 = new String("ghij");
System.out.println("s1.endsWith(s2): " + s1.endsWith(s2) );
결과는 다음과 같습니다: s1.endsWith(s2): true
9. boolean equals(Object anObject): anObject가 비어 있지 않고 현재 String 객체와 동일하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
10. byte[] getBytes(): String 객체를 바이트 배열로 변환합니다.
11. void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin): 이 메소드는 문자열을 문자 배열에 복사합니다. 그 중 srcBegin은 복사의 시작 위치, srcEnd는 복사의 끝 위치, 문자열 값 dst는 대상 문자 배열, dstBegin은 대상 문자 배열의 복사 시작 위치이다.
예: char[] s1 = {'I',' ','l','o','v','e',' ','h','e','r','!' } ;//s1=나는 그녀를 사랑해요!
String s2 = new String("you!"); s2.getChars(0,3,s1,7); //s1=사랑해요!
System.out.println( s1 );
결과는: 사랑해요!
12. int hashCode(): 현재 문자의 해시 테이블 코드를 반환합니다.
13. int indexOf(int ch): 일치하는 첫 번째 문자 위치만 찾습니다.
14. int indexOf(int ch, int fromIndex): fromIndex에서 시작하여 첫 번째로 일치하는 문자 위치를 찾습니다.
15. int indexOf(String str): 일치하는 첫 번째 문자열 위치만 찾습니다.
16. int indexOf(String str, int fromIndex): fromIndex에서 시작하여 일치하는 첫 번째 문자열 위치를 찾습니다.
예: String s = new String("한 번 작성하면 어디에서나 실행 가능!");
String ss = new String("실행");
System.out.println("s.indexOf('r'): " + s.indexOf('r') );
System.out.println("s.indexOf('r',2): " + s.indexOf('r',2) );
System.out.println("s.indexOf(ss): " + s.indexOf(ss) );
결과는 다음과 같습니다: s.indexOf('r'): 1
s.indexOf('r',2): 12
s.indexOf(ss): 12
17. int lastIndexOf(int ch)
18. int lastIndexOf(int ch, int fromIndex)
19. int lastIndexOf(문자열 str)
20. int lastIndexOf(String str, int fromIndex) 위 4가지 메소드는 13, 14, 15, 16과 비슷합니다. 차이점은 마지막으로 일치하는 내용을 찾는다는 것입니다.
공개 클래스 CompareToDemo {
공개 정적 무효 메인(String[] args) {
String s1 = new String("acbdebfg");
System.out.println(s1.lastIndexOf((int)'b',7));
}
}
실행 결과: 5
(fromIndex의 매개변수는 7인데, 이는 문자열 acbdebfg의 마지막 문자 g부터 앞으로 세는 자릿수이다. 문자 c부터 매칭을 시작하므로 b와 일치하는 마지막 위치를 찾는다. 따라서 결과는 5이다)
21. int length(): 현재 문자열 길이를 반환합니다.
22. String replacement(char oldChar, char newChar): 문자열의 첫 번째 oldChar를 newChar로 교체합니다.
23. boolean startWith(String prefix): 문자열 객체가 접두사로 시작하는지 여부.
24. boolean startWith(String prefix, int toffset): 문자열 객체가 접두사로 시작하는지 여부(toffset 위치부터 계산).
예: String s = new String("한 번 작성하면 어디에서나 실행 가능!");
String ss = new String("쓰기");
String sss = new String("한 번");
System.out.println("s.startsWith(ss): " + s.startsWith(ss) );
System.out.println("s.startsWith(sss,6): " + s.startsWith(sss,6) );
결과는 다음과 같습니다: s.startsWith(ss): true
s.startsWith(sss,6): true
25. String substring(int BeginIndex): BeginIndex 위치부터 끝까지 부분 문자열을 가져옵니다.
26.String substring(int BeginIndex, int endIndex): BeginIndex 위치부터 endIndex 위치까지 하위 문자열을 가져옵니다.
27. char[ ] toCharArray(): String 객체를 char 배열로 변환합니다.
28. String toLowerCase(): 문자열을 소문자로 변환합니다.
29. String toUpperCase(): 문자열을 대문자로 변환합니다.
예: String s = new String("java.lang.Class String");
System.out.println("s.toUpperCase(): " + s.toUpperCase() );
System.out.println("s.toLowerCase(): " + s.toLowerCase() );
결과는 다음과 같습니다. s.toUpperCase(): JAVA.LANG.CLASS STRING
s.toLowerCase(): java.lang.class 문자열
30. 정적 문자열 valueOf(boolean b)
31. 정적 문자열 값(문자 c)
32. 정적 문자열 valueOf(char[] 데이터)
33. static String valueOf(char[] data, int offset, int count)
34. 정적 문자열 valueOf(double d)
35. 정적 문자열 값(float f)
36. 정적 문자열 값(int i)
37. 정적 문자열 값(긴 l)
38. 정적 문자열 valueOf(객체 obj)
위의 방법은 다양한 유형을 Java 문자 유형으로 변환하는 데 사용됩니다. 이것이 클래스 메소드입니다.
Java에서 String 클래스의 일반적인 메소드:
공개 char charAt(int 인덱스)
문자열의 인덱스 문자를 반환합니다.
공개 정수 길이()
문자열의 길이를 반환합니다.
공개 int indexOf(문자열 str)
문자열에서 str이 처음 나타나는 위치를 반환합니다.
공개 int indexOf(문자열 str, int fromIndex)
fromIndex에서 시작하는 문자열에서 str이 처음 나타나는 위치를 반환합니다.
공개 부울은 IgnoreCase(다른 문자열)입니다.
문자열이 다른 문자열과 동일한지 비교합니다(대소문자 무시).
공개 문자열 교체(char oldchar,char newChar)
문자열에서 oldChar 문자를 newChar 문자로 바꾸기
공개 부울 startWith(문자열 접두사)
문자열이 접두사 문자열로 시작하는지 확인합니다.
공개 부울 endWith(문자열 접미사)
문자열이 접미사 문자열로 끝나는지 확인합니다.
공개 문자열 toUpperCase()
문자열의 대문자 버전인 문자열을 반환합니다.
공개 문자열 toLowerCase()
문자열의 소문자 버전인 문자열을 반환합니다.
공개 문자열 하위 문자열(int startIndex)
BeginIndex부터 문자열 끝까지의 하위 문자열을 반환합니다.
공개 문자열 하위 문자열(int startIndex,int endIndex)
BeginIndex부터 endIndex 끝까지의 문자열의 하위 문자열을 반환합니다.
공개 문자열 다듬기()
앞뒤 공백을 제거한 후 문자열을 반환합니다.
공개 문자열[] 분할(문자열 정규식)
지정된 구분 기호에 따라 문자열을 구분하고 구분된 문자열 배열 인스턴스를 반환합니다.
다음과 같이 코드 코드를 복사합니다 .
공개 클래스 SplitDemo{
공개 정적 무효 메인(String[] args) {
문자열 날짜 = "2008/09/10";
문자열[ ] dateAfterSplit= 새 문자열[3];
dateAfterSplit=date.split("/"); //날짜 문자열을 분할하고 결과를 세 개의 문자열로 저장하려면 "/"를 구분 기호로 사용합니다.
for(int i=0;i<dateAfterSplit.length;i++)
System.out.print(dateAfterSplit[i]+" ");
}
}
실행 결과: 2008 09 10 //결과는 3개의 분할 문자열 인스턴스입니다.
TestString1.java:
프로그램 코드
다음과 같이 코드 코드를 복사합니다 .
공개 클래스 TestString1
{
공개 정적 무효 메인(문자열 인수[]) {
문자열 s1 = "안녕하세요 세계";
문자열 s2 = "안녕하세요 세계";
System.out.println(s1.charAt(1));
System.out.println(s2.length());
System.out.println(s1.indexOf("세계"));
System.out.println(s2.indexOf("세계"));
System.out.println(s1.equals(s2));
System.out.println(s1.equalsIgnoreCase(s2));
String s = "저는 J2EE 프로그래머입니다";
String sr = s.replace('나','당신');
System.out.println(sr);
}
}
TestString2.java:
프로그램 코드
다음과 같이 코드 코드를 복사합니다 .
공개 클래스 TestString2
{
공개 정적 무효 메인(문자열 인수[]) {
String s = "자바 세계에 오신 것을 환영합니다!";
문자열 s2 = "magci";
System.out.println(s.startsWith("환영합니다"));
System.out.println(s.endsWith("세계"));
문자열 sL = s.toLowerCase();
문자열 sU = s.toUpperCase();
System.out.println(sL);
System.out.println(sU);
문자열 subS = s.substring(11);
System.out.println(subS);
문자열 s1NoSp = s2.trim();
System.out.println(s1NoSp);
}