String-3 countYZ
1. Coding Bat String-3 countYZ
문자열이 주어지면 'y' 또는 'z'로 끝나는 단어 수를 세십시오.
따라서 "heavy"의 'y'와 "fez"의 'z'는 세지만 "yellow"의 'y'는 세지 않습니다. (대소문자를 구분하지 않음)
바로 뒤에 알파벳 문자가 없으면 y 또는 z가 단어 끝에 있다고 말할 것입니다.
(참고: Character.isLetter(char)는 char이 알파벳 문자인지 테스트합니다.)
countYZ("fez day") → 2
countYZ("day fez") → 2
countYZ("day fyyyz") → 2
1. 고려할 사항
2. 나의 풀이
- 전달받은 문자열에서 'y' 혹은 'z'를 찾는다.
- 찾은 'y'나 'z' 뒤의 글자가 공백인지 확인한다.
- 문자를 대문자 혹은 소문자로 통일한다.
2-1. 첫 번째 풀이
public int countYZ(String str) {
int count = 0;
String[] sptstr = str.split(" "); // " "를 기준으로 나눈다.
for(String temp : sptstr){
if (temp.substring(temp.length() - 1).equals(Character.toString('y')) ||
temp.substring(temp.length() - 1).equals(Character.toString('z')))
// 글자의 마지막이 'y' 혹은 'z'인지 확인한다.
count++;
}
return count;
}
// 아니 항상 띄어쓰기로 하는게 아니네;
위의 예제는 잘못된 풀이다.
- 대소문자를 해결할 방법이 없다.
- 항상 " "를 기준으로 나누지 않는다.
2-2. 두 번째 풀이
public int countYZ(String str) {
int count = 0;
int len = str.length(); // 전달받은 문자의 길이를 센다.
str = str.toLowerCase(); // 모든 문자를 소문자로 변환한다.
for(int i = 0; i < len; i++){
if (str.charAt(i) == 'y' || str.charAt(i) == 'z') {
if( (i < len-1) && !(Character.isLetter(str.charAt(i+1))))
count++;
else if(i + 1 == len)
count++;
}
}
return count;
}
3. 메서드
1. length()
string 문자열의 길이를 반환한다.
String temp = "lengthSize"
int a = temp.length(); // a = 10
1-1. length - 배열의 길이를 반환한다.
int[] temp = new int[7];
int a = temp.length; // a = 7
1-2. size() - 컬렉션 프레임워크 타입의 길이를 반환한다.
ArrayList<Object> temp = new ArrayList<Object>();
int a = sizeTest.size(); // 0
2. toLowerCase()
문자열을 모두 소문자로 반환한다.
String temp = "lEngThSizE"
temp = temp.toLowerCase(); // temp = "lengthsize"
2-1. toUpperCase - 문자열을 모두 대문자로 반환한다.
3. charAt(int)
원하는 인덱스의 문자를 받아온다.
String temp = "lengthWhere"
char a = temp.charAt(4); // a = 't'
3-1. indexOf(string) - 문자열 중에 입력받은 문자가 있으면 그 인덱스를 반환한다. (왼쪽부터)
3-2. lastIndexOf(string) - 문자열 중에 입력받은 문자가 있으면 그 인덱스를 반환한다. (오른쪽부터)
4. Character.isLetter(char)
받아온 문자가 문자인지 확인한다.
boolean a = Character.isLetter("8"); // a = false;
boolean b = Character.isLetter("a"); // b = true;
4-1. Character.isDigit(char) - 받아온 문자가 숫자인지 확인한다.
Author And Source
이 문제에 관하여(String-3 countYZ), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@aswooo/String-3-countYZ저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)