문제 설명
제한사항
입출력 예
class Solution {
public int solution(String s) {
// 1. 각 영단어의 인덱스 숫자에 맞게 초기화
String[] numStr = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
// 2. 문자열에서 각 영단어 찾아서 변경
for (int i = 0; i < numStr.length; i++)
s = s.replaceAll(numStr[i], String.valueOf(i));
// 3. 문자열 -> 숫자
return Integer.parseInt(s);
}
}
문자열.repalce()
- String replace(CharSequence target, CharSequence replacement)
- replace() 함수는 대상 문자열을 원하는 문자값으로 변환하는 함수
첫번째 매개변수는 변환하고자 하는 대상이 될 문자열
두번째 매개변수는 변환할 문자 값public class ReplaceTest{ public static void main(String[] args){ String replaceTest = "리플레이스 테스트"; System.out.println(replaceTest.replace("리플레이스", "replace")); // replace 테스트 } }
문자열.repalceAll()
- String replaceAll(String regex, String replacement)
- replaceAll() 함수는 대상 문자열을 원하는 문자값으로 변환하는 함수
첫번째 매개변수는 변환하고자 하는 대상이 될 문자열
두번째 매개변수는 변환할 문자 값public class ReplaceAllTest{ public static void main(String[] args){ String replaceAllTest = "리플레이스의 리플레이스테스트"; System.out.println( replaceAllTest.replaceAll("리플레이스","replaceAll") ); // replaceAll의 replaceAll테스트 } }
replace() vs repalceAll()
- replace(): CharSequence 입력 문자순서와 동일한 것만 가능
- replaceAll(): regex 정규 표현식 사용 가능, 개발 시 많이 사용
public class AllTest{ public static void main(String[] args){ String allTest = "aaabbbvccacfgdracabtghd"; System.out.println( allTest.replace("ab","0")); // ab로 시작하는 것만 0으로 변경 // aa0bbvccacfgdrac0tghd System.out.println( allTest.replaceAll("[ab]","0")); // a, b 모두 0으로 변경 // 000000vcc0cfgdr0c00tghd } }
String.valueOf(값)
- String valueOf(Object obj)
- 모든 값을 문자열로 변환하는 함수
- 파라미터가 null이면 문자열 "null"을 만들어서 반환 (항상 문자열 반환)
- null 체크 방법은 "null".equals(string)
- 값.toString()은 대상 값이 null이면 NPE를 발생 -> Object에 담긴 값이 String이 아니여도 출력