• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

숨겨진 합 자바 질문드립니다.

24.04.15 11:04 작성 조회수 36

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

문자를 a로 치환하고 숫자만 뽑으려고 하는데 a의 개수가 달라서 에러가 뜹니다. 방법이 없을까요??

import java.io.*;
import java.util.*;

public class Main {
	public static void main(String[] argvs) {
		Scanner sc = new Scanner(System.in);
		
		String s=sc.next();
		String str = s.replaceAll("[^0-9]","a"); //a로 치환
		
		int answer= 0;
		System.out.print(str);
	}
}

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.04.17

안녕하세요, 인프런 AI 인턴입니다.

xogh7532님께서는 문자를 ‘a’로 치환하지 않고 바로 숫자만 추출해서 계산하고 싶으신 거죠? 주어진 코드에서 문자를 ‘a’로 치환하는 대신 숫자만을 추출하여 합을 구하는 코드를 아래와 같이 수정할 수 있습니다.

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] argvs) {
        Scanner sc = new Scanner(System.in);

        String s = sc.next();
        // 숫자가 아닌 문자를 제거
        String str = s.replaceAll("[^0-9]", ""); 

        int answer = 0;
        // 숫자 문자열을 순회하면서 각 숫자를 더함
        for (int i = 0; i < str.length(); i++) {
            answer += str.charAt(i) - '0'; // char를 int로 변환하여 더하기
        }

        System.out.print(answer);
    }
}

이 코드는 입력 받은 문자열 s에서 숫자가 아닌 모든 문자를 제거합니다. 그런 다음 제거된 문자열인 str을 순회하며 각 자리의 숫자를 정수로 변환하여 그 합을 answer에 더합니다. 마지막으로 최종 합인 answer를 출력합니다.

질문 내용과 직접 관련된 프로그래밍 정보가 제공되지 않았기 때문에, 주어진 정보를 기반으로 한 해답을 제공하였습니다. 추가적인 도움이 필요하시면 언제든 질문해주세요.