내 코드 (틀림)
import java.util.*;
class Solution {
public int solution(String my_string) {
int answer = 0;
// 알파벳 먼저 띄어쓰기로 replaceAll하고 앞뒤 공백 제거
my_string = my_string.replaceAll("[^0-9]", " ").replaceAll(" ", " ").trim();
System.out.print(my_string);
ArrayList<String> list = new ArrayList<>(Arrays.asList(my_string.split(" ")));
for(String i : list) {
int j = Integer.parseInt(i);
if((0 <= j) && (j <= 1000)) answer += j;
}
return answer;
}
}
설마설마했는데 실패...ㅎ
공백 문자에 대한 처리를 제대로 못 해줬기 때문에 실패한 것 같았다.
그래서 두 칸을 차지하는 공백을 replaceAll하는 것도 빼주고...
그래서 다시 풀어봄..
내 코드 (정답)
import java.util.*;
class Solution {
public int solution(String my_string) {
int answer = 0;
my_string = my_string.replaceAll("[^0-9]", " ").trim();
ArrayList<String> list = new ArrayList<>(Arrays.asList(my_string.split(" ")));
for(String i : list) {
if(i.equals("")) {
continue;
}
else {
answer += Integer.parseInt(i.trim());
}
}
return answer;
}
}
공백에 대한 처리도 해주고,
숫자 양 옆에 있는 공백도 생각해서 trim() 해주고 그랬더니 통과했다ㅠ..
다른 코드
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;
}
}
이리 간단하게 푸실 수가....🤦♀️
Integer.valueOf()
대신 Integer.parseInt()
써도 된다.
(참고)
- 문자열 공백 제거
Java - 문자열 공백제거 (trim, replace)
문자열의 공백을 제거하는 방법을 소개합니다. String.trim()은 문자열 앞 뒤의 공백을 제거합니다. 문자열 중간에 있는 공백은 제거하지 못합니다. replace()를 이용하면 문자열 가운데 있는 공백을
codechacha.com
[Java] 문자열에서 공백 제거하기
지난 번에는 문자열 앞뒤의 공백을 제거하는 방법을 알아보았습니다. [Java] 문자열 앞뒤 공백 제거하기 (trim() vs strip() 차이) 이번에는 문자열 전체에서 모든 공백을 제거하는 방법을 소개합니다.
hianna.tistory.com
- 문제 힌트
숨어있는 숫자의 덧셈 (2) - Java [프로그래머스 입문]
❤️ Problem 더보기 문제 문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세
gyulpiki.tistory.com
- Integer.valueOf()
VS Integer.parseInt()
Java Integer.valueOf VS Integer.parseInt 어떤것을 써야할까?
자바에서 `10`과 같은 문자열을 숫자 값으로 변형해서 계산해야 할 때, 변환 방법에 2가지가 있으므로 무얼 써야 하지 하고 고민을 한적 있으신가요? 대충 익숙한 Integer.parseInt를 쓴 거 같은데, 그
sayit.tistory.com
[Java] valuOf()와 parseInt() 차이
자바 코딩을 하다보면 문자열 형태로 표현된 정수를 정수 타입 값으로 변환해야할 경우가 있습니다. 이 경우 vlueOf() 메서드와 parseInt() 메서드를 사용하게 됩니다. int number1 = Integer.valueOf("100"); Sys
soft.plusblog.co.kr
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 0] 캐릭터의 좌표 (0) | 2023.02.11 |
---|---|
[프로그래머스/Lv. 0] 다음에 올 숫자 (0) | 2023.02.09 |
[프로그래머스/Lv. 0] 한 번만 등장한 문자 (0) | 2023.02.09 |
[프로그래머스/Lv. 0] 최댓값 만들기 (2) (0) | 2023.02.09 |
[프로그래머스/Lv. 0] 문자열 계산하기 (0) | 2023.02.08 |