- String 클래스는 java.lang패키지의 클래스이다.
이것이 자바다 책에서는 바이트 배열을 문자열로 변환하는 방법을 보여주는데, 게시글에서는 생략하고 String메소드를 정리하고자 한다. - String 메소드
리턴 타입 | 메소드명(매개변수) | 설명 |
char | charAt(int index) | 특정 위치의 문자 리턴 |
boolean | equals(Object anObject) | 두 문자열을 비교 |
byte[] | getBytes() | byte[]로 리턴 |
getBytes(Charset charset) | 주어진 문자셋으로 인코딩한 byte[]로 리턴 | |
int | indexOf(String str) | 문자열 내에서 주어진 문자열의 위치를 리턴 |
length() | 총 문자의 수를 리턴 | |
String | replace(CharSequence target, CharSequence replacement) | target부분을 replacement로 대체한 새로운 문자열을 리턴 |
subString(int beginIndex) | beginIndex위치에서 끝까지 잘라낸 새로운 문자열을 리턴 | |
subString(int beginIndex, int endIndex) | beginIndex위치에서 endIndex까지 잘라낸 새로운 문자열을 리턴 | |
toLowerCase() | 알파벳 소문자로 변환한 새로운 문자열을 리턴 | |
toUpperCase() | 알파벳 대문자로 변환한 새로운 문자열을 리턴 | |
trim() | 앞뒤 공백을 제거한 새로운 문자열을 리턴 | |
valueOf(int i) valueOf(double d) |
기본타입값을 문자열로 리턴 |
메소드명을 보면 메소드의 기능이 무엇인기 쉽게 유추할 수 있는것 같다.
표에서 정리한 String클래스의 메소드들을 간단히 정리해보겠다.
- charAt() - 문자추출
매개값으로 주어진 인덱스의 문자를 리턴해준다. 문자열의 인덱스는 0부터 시작이고 공백도 문자열로 인덱스에 포함이다.
- equals() - 문자열비교
기본타입 변수값을 비교할땐 == 연산자를 사용하지만 문자열을 비교할때는 다르다. equals()는 java.lang패키지의 Object클래스를 할때도 공부한적이 있지만 Object클래스에서 equals()는 번지비교 메소드이고
String클래스에서는 오버라이딩에서 문자열을 비교하는 메소드이다.
자바는 문자열 리터럴이 동일하면 동일한 String객체를 참조하지만 new연산자로 생성하면 다른 String객체를 참조한다.
String str1 = new String("뭉이공주");
String str2 = "뭉이공주";
String str3 = "뭉이공주";
위 코드로 설명을하면, str2와 str3는 동일한 String객체를 참조하지만, str1dms 다른String객체를 참조한다는 것이다.!
즉, str2==str3 연산은 true값이 나오지만, str1==str2의 연산은 false이다.
왜냐면, ==연산자는 각 변수에 저장된 번지를 비교하기 때문이다.
때문에, 두 객체의 문자열만 비교하고 싶으면 ==연산자 말고, equals()메소드를 사용해야한다.
str1.equals(str3) -> true
이렇게 하면 true값이 나온다!
- indexOf() - 문자열 찾기
indexOf()메소드는 매개값으로 주어진 문자열이 시작되는 인덱스를 리턴하고, 만약 주어진 문자열이 포함되어 있지 않으면 -1을 리턴한다.
String str = "뭉아 사랑해";
int index = str.indexOf("사랑헤");
index변수에는 "사랑해"의 "사"문자열의 인덱스 위치인 3이 저장된다.
- length() - 문자열 길이 반환
length()메소드는 문자열의 길이를 리턴한다. 인덱스의 수가 아니다.
String str = "열심히 해야지"; str.length()를 수행하면 8이 나온다. 마지막인덱스는 7이지만 길이는 8이다.
String str = "열심히 해야지";
int length = str.length();
- subString() - 문자열 잘라내기
subString()메소드는 주어진 인덱스에서 문자열을 추출해서 반환한다. 매개값의 수에 따라 두가지 형태가 있다.
String ssn = "940127-1234567";
String firstNum = ssn.subStirng(0,6);
String secondNum = ssn.subString(7);
위 코드에서 fristNum의 변수값은 "940127"이고, secondNum의 변수값은 "1234567"이다.
즉 subString(0,6)은 결국 ssn의 문자열에서 0~5까지 인덱스 위치에 있는 문자열을 반환해주고(6번째 인덱스위치는 제외된다는 점을 기억해야한다),
subString(7)은 인덱스위치가 7인 곳에서부터의 끝까지 문자열을 반환해준다.
'Language > JAVA' 카테고리의 다른 글
StringBuffer, StringBuilder클래스 (0) | 2023.07.07 |
---|---|
StringTokenizer 클래스 (0) | 2023.07.07 |
API_2. java.util패키지의 Objects 클래스 (0) | 2023.07.06 |
API_1. Object 클래스와 메소드 (0) | 2023.07.06 |
JAVA API 클래스 - 1 (0) | 2023.07.06 |