문자찾기
indexOf
indexOf() 는 특정 문자나 문자열이 앞에서부터 처음 발견되는 인덱스를 반환하며
만약 찾지 못했을 경우 "-1"을 반환합니다.
indexOf(String str)
indexOf(char ch)
indexOf(char ch, int fromIndex)
indexOf(String str, int fromIndex)
👉역순으로 할 때는 lastIndexOf()로 똑같이 하면된다.
매개변수에 str 값을 넣어주면 해당 문자의 위치를 알려준다.
두번 째 매개변수 fromIndex에 넣으면 해당 위치부터 str을 찾아준다.
contains
문자열을 검색할 때 효율 적이며 만약 문자열이 있을 경우 true 없을경우 false를 출력
ex)
String value = "abcdef"
System.out.println(value.contains("abc")) // true
System.out.println(value.contains("abcf")) // false
matches
정규식을 이용하여 문자열을 찾아 주는 메서드 영문자 표현식이 대상 문자열에 포함되어 있는지 아닌지에 따라서 true false를 출력
대소문자 변환
내장 라이브러리를 이용 할 때
toUpperCase( ) : 문자열을 모두 대문자로 변환해준다.
toLowerCase( ) : 문자열을 모두 소문자로 변환해준다.
내장 라이브러리를 이용 하지 않을 때
문자열을 문자 하나하나 마다 아스키코드 차이 값 32 를 빼주거나 더해줘서
조건에 따라 소문자, 대문자 변환이 가능하다.
대소문자 무시하고 비교
equalsIgnoreCase를 이용하면 대소문자 상관없이 비교한다.
단어 뒤집기
public static void main(String[] args)
{
String str = "abcde"; // reverse
StringBuffer sb = new StringBuffer(str);
String reversedStr = sb.reverse().toString();
System.out.println(reversedStr); // edcba
}
주로 StringBuffer를 이용하여 reverse로 뒤집어준다.
public class String_Reverse_Practice
{
public static void main(String[] args)
{
String str = "abcde";
char[] arr = str.toCharArray(); // String -> char[]
char[] reversedArr = new char[arr.length];
for(int i=0; i<arr.length; i++){
reversedArr[arr.length-1-i] = arr[i];
}
String reversedStr = new String(reversedArr);
System.out.println(reversedStr); // edcba
}
}
순수하게 char 로 변경하여 역순으로 변경시켜주는 방법이다.
마지막 방법은 List<Character>를 사용하여 reverse 메서드를 이용한다.
해당 방법보다는 StringBuilder 방법이 효율적인 것같다.
