public class Solution {
public static int numberSearch(String str) {
double total=0;
double cnt=0;
if(str.length()==0){
return 0;
}
str = str.replaceAll(" ", "");
for(int i=0;i<str.length();i++){
if(str.charAt(i) <='9' && str.charAt(i)>='1'){ // 숫자인 경우
total += Character.getNumericValue(str.charAt(i));
cnt+=1;
}
}
return (int) Math.round(total/(str.length()-cnt));
}
public static void main(String[] args) {
int output = numberSearch("Hello6 ");
System.out.println(output); // --> 1
output = numberSearch("Hello6 9World 2,");
System.out.println(output); // --> 2
output = numberSearch("Hello6 9World 2, Nic8e D7ay!");
System.out.println(output); // --> 2
}
}
✔️ 숫자를 구별하는 코드
for(int i=0;i<str.length();i++){
if(str.charAt(i) <='9' && str.charAt(i)>='1'){ // 숫자인 경우
total += Character.getNumericValue(str.charAt(i));
cnt+=1;
}
}
public class Solution {
public static int numberSearch2(String str) {
String num = "0123456789";
double total=0;
int cnt=0;
if(str.length()==0) return 0;
for(int i=0;i<str.length();i++){
if(num.indexOf(str.charAt(i)) != -1){ // 숫자인 경우
total += Character.getNumericValue(str.charAt(i));
} else if (str.charAt(i) != ' ') {// 숫자, 공백을 제외한 길이 세기
cnt += 1;
}
}
return (int) Math.round((total/cnt));
}
}
indexOf()
를 통해서 숫자인지 구별한다.num.indexOf(str.charAt(i))
가 -1
이면 문자열 내에 존재하지 않는다는 의미이다.num.indexOf(str.charAt(i)) != -1
이면 해당 문자는 숫자라는 의미이다.