length() 메서드
문자열의 길이를 리턴한다.
String test ="test";
System.out.println(test.length()); //4
replace() 메서드
문자열에 지정한 문자가 있으면 새로 지정한 문자로 바꿔서 리턴한다.
String test ="test";
System.out.println(test.replace("t","T")); //TesT
contains() 메서드
두 개의 String을 비교해서 해당 String을 포함하고 있으면 true, 다르면 false를 리턴한다.
String test ="test";
System.out.println(test.contains("t")); //true
startsWith() 메서드
문자열이 지정한 문자로 시작하는지 판단한다. 같으면 true, false를 리턴한다.
String test ="test";
System.out.println("startsWith : " + test.startsWith("t")); //startsWith : true
String 클래스의 startsWith() 메서드
public boolean startsWith(String prefix, int toffset) {
// Note: toffset might be near -1>>>1.
if (toffset < 0 || toffset > length() - prefix.length()) {
return false;
}
byte ta[] = value;
byte pa[] = prefix.value;
int po = 0;
int pc = pa.length;
if (coder() == prefix.coder()) {
int to = isLatin1() ? toffset : toffset << 1;
while (po < pc) {
if (ta[to++] != pa[po++]) {
return false;
}
}
} else {
if (isLatin1()) { // && pcoder == UTF16
return false;
}
// coder == UTF16 && pcoder == LATIN1)
while (po < pc) {
if (StringUTF16.getChar(ta, toffset++) != (pa[po++] & 0xff)) {
return false;
}
}
}
return true;
}
endsWith() 메서드
문자열 마지막에 지정한 문자가 있는지 판단한다. 있으면 true, 없으면 false를 리턴한다.
String test ="test";
System.out.println("endsWith : " + test.endsWith("t")); //endsWith : true
String 클래스의 endsWith 메서드
public boolean endsWith(String suffix) {
return startsWith(suffix, length() - suffix.length());
}
equals 메서드
두개의 String에 값을 비교해서 같으면 true, 다르면 false를 리턴한다.
String test1 ="test";
String test2 ="test";
System.out.println(test1.equals(test2)); // true
String 클래스의 equals 메서드
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String aString = (String)anObject;
if (coder() == aString.coder()) {
return isLatin1() ? StringLatin1.equals(value, aString.value)
: StringUTF16.equals(value, aString.value);
}
}
return false;
}
indexOf 메서드
지정한 문자가 문자열에 몇번째에 있는지를 인덱스 위치(int)를 리턴한다.
String test ="test";
System.out.println(test.indexOf("e")); //1
String 클래스의 indexOf 메서드
public int indexOf(String str) {
if (coder() == str.coder()) {
return isLatin1() ? StringLatin1.indexOf(value, str.value)
: StringUTF16.indexOf(value, str.value);
}
if (coder() == LATIN1) { // str.coder == UTF16
return -1;
}
return StringUTF16.indexOfLatin1(value, str.value);
}
lastIndexOf 메서드
문자열에 지정한 문자가 마지막 몇번째에 있는지 인덱스 위치(int)를 리턴한다.
String test ="test";
System.out.println(test.lastIndexOf("e")); //1
static int lastIndexOf(byte[] src, byte srcCoder, int srcCount,
String tgtStr, int fromIndex) {
byte[] tgt = tgtStr.value;
byte tgtCoder = tgtStr.coder();
int tgtCount = tgtStr.length();
/*
* Check arguments; return immediately where possible. For
* consistency, don't check for null str.
*/
int rightIndex = srcCount - tgtCount;
if (fromIndex > rightIndex) {
fromIndex = rightIndex;
}
if (fromIndex < 0) {
return -1;
}
/* Empty string always matches. */
if (tgtCount == 0) {
return fromIndex;
}
if (srcCoder == tgtCoder) {
return srcCoder == LATIN1
? StringLatin1.lastIndexOf(src, srcCount, tgt, tgtCount, fromIndex)
: StringUTF16.lastIndexOf(src, srcCount, tgt, tgtCount, fromIndex);
}
if (srcCoder == LATIN1) { // && tgtCoder == UTF16
return -1;
}
// srcCoder == UTF16 && tgtCoder == LATIN1
return StringUTF16.lastIndexOfLatin1(src, srcCount, tgt, tgtCount, fromIndex);
}
concat() 메서드
문자열과 문자열을 결합하는 메서드로 파라미터에 추가할 String형 데이터가 온다.
String str = "Hello ";
String lang = "Java";
System.out.println(str.concat(lang));
// 출력결과 : Hello Java
substring() 메서드
문자열을 자르는 메서드이다. 파라미터에 어디부터 어디까지 자를지 문자열의 인덱스가 와야한다. 첫번째
파라미터가 시작 인덱스, 두번째 파라미터가 마지막 인덱스이며 파라미터를 하나만 넣을 경우 입력받은
인덱스부터 마지막까지 문자열을 자른다.
String str = "Hello Java";
String lang = str.substring(6);
System.out.println(lang);
// 출력 결과 : Java
charAt() 메서드
indexOf()와 반대의 메서드로 인덱스에 위치한 문자를 반환하는 메서드이다. 파라미터로는 int형 인덱스를 입력받는다.
String str = "Hello Java";
System.out.println(str.charAt(1));
// 출력 결과 : e
isEmpty() 메서드
해당 문자열이 빈 값인지 확인하는 메서드로 문자열의 길이가 0인지 비교하여 boolean값을 반환한다.
파라미터는 없고 문자열의 길이가 0이면 true, 0이 아니면 false를 리턴한다.
String str = "Hello Java";
System.out.println(str.isEmpty());
// 출력 결과 : false
toUpperCase() 메서드
문자열을 대문자로 바꿔주는 메서드로 파라미터에 대문자로 바꿔줄 String 데이터를 입력한다.
String str = "hello java";
String strUp = str.toUpperCase();
System.out.println(strUp);
// 출력 결과 : HELLO JAVA
toUpperCase()는 subString()과 함께 사용하면, String 클래스에는 없는 첫글자만 대문자로 바꾸는
capitalize를 구현할 수 있다.
String str = "hello java";
String newStr = str.subString(0, 1).toUpperCase();
// subString으로 첫글자만 가져와서 toUpperCase()를 적용한 코드이다.
toLowerCase() 메서드
문자열을 소문자로 바꿔주는 메서드로 파라미터에 소문자로 바꿔줄 String 데이터를 입력한다.
String str = "HELLO JAVA";
String strLo = str.toLowerCase();
System.out.println(strLo);
// 출력 결과 : hello java
trim() 메서드
문자열 앞뒤의 공백을 제거해주는 메서드이다. 파라미터는 없다.
String str = " Hellooo Java World ";
String trimStr = str.trim();
System.out.println(trimStr);
// 출력 결과 : Hellooo Java World
split() 메서드
문자열을 잘라서 배열로 반환하는 메서드이다. 파라미터로 자를 때 기준이 되는 문자열을 입력받는다.
""만 입력하면 하나씩 잘라서 배열로 반환한다.
String str = "Hello Java";
String[] arr = str.split("");
System.out.println(Arrays.toString(arr));
// 출력 결과 : [H, e, l, l, o, , J, a, v, a]
toCharArray() 메서드
split("")과 같은 기능이지만 반환하는 배열의 타입이 문자열 배열이 아니라 문자형(char[]) 배열이라는 차이가 있다.
파라미터는 없다.
String str = "Hello Java";
char[] cArr = str.toCharArray();
System.out.println(cArr);
// 출력 결과 : Hello Java
matches() 메서드
문자열이 인수로 지정된 문자열과 완전히 일치하면 true, 완전히 일치하지 않으면 false를 반환한다.
String str = "Hello Java";
System.out.println(str.matches("Hello Java"));
//결과 : true
getBytes() 메서드
byte 배열로 반환하는 메서드이다. 파라미터는 없다.
String str = "Hello Java";
byte[] bytesArr = str.getBytes();
System.out.println(Arrays.toString(bytesArr));
// 출력 결과 : [72, 101, 108, 108, 111, 32, 74, 97, 118, 97]
여기서 출력되는 byte코드는 아스키코드 테이블을 보면 어떤 문자열을 의미하는지 알 수 있다.
아스키코드 테이블상 H라는 문자는 10진수 72와 매칭된다. 따라서 문자열 str 변수에서 H의 문자와
매칭되는 바이트 코드는 72라는 것을 알 수 있다.
참고 출처 : https://observerlife.tistory.com/22
[JAVA] 자주쓰는 String 클래스 메소드(String Class method)
자주쓰는 String 클래스의 메소드들에 대해 알아봅니다. startsWith 메소드 문자열이 지정한 문자로 시작하는지 판단한다. 같으면 true, 아니면 false를 리턴한다. String test ="test"; System.out.println("startsWit
observerlife.tistory.com
'JAVA > JAVA2' 카테고리의 다른 글
[java2] #32 - Date, Calendar, SimpleDateFormat Class (1) | 2022.11.17 |
---|---|
[java2] #31 - ArrayList (개념/사용법) (0) | 2022.11.15 |
[java2] #29 - StringBuilder, StringBuffer (0) | 2022.11.02 |
[java2] #28 - identityHashCode, concat (0) | 2022.10.27 |
[java2] #27 - null(널)이란? (0) | 2022.09.24 |