
내가 작성한 코드
class Solution {
public int solution(String my_string) {
int answer = 0;
StringBuilder numericString = new StringBuilder(); // 숫자 문자열을 저장할 StringBuilder
String[] str = my_string.split(""); // 입력 문자열 배열화
for(int i = 0; i < str.length; i++) {
if (isNumeric(str[i])) { // 현재 문자가 숫자일 경우
numericString.append(str[i]); // 숫자 문자열에 해당 문자를 추가
} else if (numericString.length() != 0){ // 현재 문자가 숫자가 아니고 숫자 문자열이 비어있지 않다면
answer += Integer.parseInt(numericString.toString()); // 숫자 문자열을 정수로 변환하여 결과에 더함
numericString.setLength(0); // 숫자 문자열을 초기화
}
}
if (numericString.length() != 0) { // 반복문이 끝난 후에도 숫자 문자열이 남아 있다면
answer += Integer.parseInt(numericString.toString()); // 남은 숫자 문자열을 정수로 변환하여 더함
}
return answer; // 결과 반환
}
// 문자열이 숫자인지 판별하는 함수
public boolean isNumeric(String str) {
try {
Integer.parseInt(str);
return true;
} catch (NumberFormatException e) {
return false;
}
}
}
다른 사람의 코드
class Solution {
public int solution(String my_string) {
int answer = 0;
// 정규식을 이용해 모든 문자열 공백으로 치환 후 공백을 기준으로 배열화
String[] str = my_string.replaceAll("[a-zA-Z]", " ").split(" ");
// 숫자만 더하기
for(String s : str){
if(!s.equals("")) answer += Integer.valueOf(s);
}
return answer;
}
}
Share article