输入是一个字符串,字符串长度不超过 80 个字符。
输出其反码
Hello
Svool
JLU-CCST-2011
QOF-XXHG-2011
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s; while ((s = br.readLine()) != null) { if (s.equals("!")) break; StringBuilder re = new StringBuilder(""); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c >= 'a' && c <= 'z') { re.append(fun(c)); } else if (c >= 'A' && c <= 'Z') { re.append(Fun(c)); } else { re.append(c); } } System.out.println(re); } } private static char fun(char c) { int t = c - 'a'; return (char) ('z' - t); } private static char Fun(char c) { int t = c - 'A'; return (char) ('Z' - t); } }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()){ String s = scanner.next(); if (s.equals("!")){ break; }else { StringBuilder builder = new StringBuilder(); char[] array = s.toCharArray(); for (char c : array) { if (c >= 'a' && c <= 'z') builder.append((char) ('z' - (c - 'a'))); else if (c>='A'&&c<='Z') builder.append((char) ('Z' - (c - 'A'))); else builder.append(c); } System.out.println(builder.toString()); } } } }
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); StringBuilder sb = new StringBuilder(""); while(sc.hasNext()){ String str = sc.nextLine(); if('!' == str.charAt(0)){ break; } char[] ch = str.toCharArray(); for(int i=0;i<ch.length;i++){ sb.append(rev(ch[i])); } System.out.print(sb); } } public static char rev(char c){ if(c>='a' && c<='z'){ return (char)('z'+'a'-c); }else if(c>='A' && c<='Z'){ return (char)('A'+'Z'-c); } return c; } }
没有处理感叹号,就AC了。
但是处理一下也很简单,在reverse方法里加个else if()条件,判断下就行了,不过这里不是重点,重点是reverse方法上反码的实现。
import java.util.Scanner; /** * @author Allen_Hua * @create_time 创建时间:May 12, 2018 7:28:49 PM 类说明 */ public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); while (scan.hasNext()) { String str = scan.nextLine(); char[] arr = str.toCharArray(); for (int i = 0; i < arr.length; i++) { System.out.print(reverse(arr[i])); } } } private static char reverse(char c) { // TODO Auto-generated method stub if (c >= 'a' && c <= 'z') { return (char) ('a' + 'z' - c); } else if (c >= 'A' && c <= 'Z') { return (char) ('A' + 'Z' - c); } else { return c; } } }