IBM Minus 1
문제 복기
틀린 이유(틀린 부분)
일단 입력 문자 char에 대해 1을 더하는 로직은 맞는데, Z의 다음 문자는 A가 되야하기 때문에 char tmp == Z의 아스키코드값 +1 이면 A로 바꿔주는 부분이 필요하다!
주의할 점✮
문자 조작할 땐 증감연산을 먼저 해주고 출력해야한다! char tmp = 'B'라고 하자. tmp를 'A' 또는 'C'로 변환하고 자할 때 tmp = tmp-1 또는 tmp = tmp+1 해주고 print(tmp) 해주면 A 또는 C가 출력된다.
하지만, print(tmp+1) 이렇게 증감연산을 출력문에 포함해버리면 이것은 그 문자를 출력하는 것이 아니라 아스키값을 출력한다!
StringTokenizer로 문자열 입력받기 - .nextTokenk()
StringTokenizer로 문자열을 입력받을 때 StringTokenizer는 공백 단위로 토큰을 인식한다!
그래서 String을 가져오고 싶을 때는 .nextToken()을 사용하면 된다! StringTokenizer st = new StringTokenizer(br.readLine()); //bufferedreader의 readLine()으로 한줄을 읽는다. String input = st.nextToken();;//공백문자 단위로 String이 input에 저장된다!
for(int i=1;i<=n;i++) {
System.out.println("String #"+i);
st = new StringTokenizer(br.readLine());
String input = st.nextToken();
//System.out.println(st.nextToken());
inputStr = input.toCharArray();
for(int j=0;j<inputStr.length;j++) {
char[] newStr = new char[inputStr.length];
newStr[j] = (char)(inputStr[j]+1);
//System.out.print(newStr[j]);
System.out.print(newStr[j]);//변형한 문자열.
}
System.out.println();//한줄 공백 두고.
System.out.println();//한줄 공백 두고.
}
Last updated
Was this helpful?