티스토리 뷰

알고리즘/이론

문자열 총 정리

chan20 2022. 1. 9. 16:55

 

문자찾기

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 방법이 효율적인 것같다.

'알고리즘 > 이론' 카테고리의 다른 글

투포인터 (Two-Pointer)  (0) 2022.01.09
동적 계획법(Dynamic Programming)  (0) 2022.01.09
greedy (탐욕)  (0) 2022.01.09