내 작업은 문자열을 입력 (숫자 만)으로 취하고 0에서 9까지 시작하는 각 숫자에 대해 문자열에서 발생 횟수를 인쇄하는 프로그램을 작성하는 것입니다. 나는 그것을 완료했다. 0으로 10 개의 정수를 선언했습니다. 각 정수는 해당 정수를 계산합니다. 그러나 마지막으로 결과를 인쇄 할 때 48 + count Count는 값 발생 횟수를 나타내므로 결과를 제공 합니다. 정확한 결과를 얻으려면 48을 빼야합니다. 왜 가치를 얻고 있는지 이해할 수 없습니다.
class TestClass {
public static void main(String args[] ) throws Exception {
Scanner sc = new Scanner(System.in);
int a='0',b='0',c='0',d='0',e='0',f='0',g='0',h='0',i='0',j='0';
String s=sc.next();
OUTER:
for (int k = 0; k<s.length(); k++) {
char ch=s.charAt(k);
switch (ch) {
case '0':
a++;
break;
case '1':
b++;
break;
case '2':
c++;
break;
case '3':
d++;
break;
case '4':
e++;
break;
case '5':
f++;
break;
case '6':
g++;
break;
case '7':
h++;
break;
case '8':
i++;
break;
case '9':
j++;
break;
case ' ':
break OUTER;
default:
break;
}
}
System.out.println("0 "+(a-48));
System.out.println("1 "+(b-48));
System.out.println("2 "+(c-48));
System.out.println("3 "+(d-48));
System.out.println("4 "+(e-48));
System.out.println("5 "+(f-48));
System.out.println("6 "+(g-48));
System.out.println("7 "+(h-48));
System.out.println("8 "+(i-48));
System.out.println("9 "+(j-48));
}
}
이 프로그램에서이 추가 값을 제거하기 위해 내가 무엇을 할 수 있는지 설명해주십시오. 감사
대신에
int a = '0'
사용하다
int a = 0
'0'
ASCII에서 48과 같으며 숫자가 아니라 문자입니다. 그래서에 의해 int a = '0'
실제로 초기화 a
됩니다.48
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다