我正在尝试打印字符串的ascii值,打印下一个字符,并打印前面的字符。因此,如果用户输入b c d
,我希望我的程序打印98 99 100
,c d e
,最后a b c
。现在凌晨3:30,我的大脑因为试图让这些工作变得有点油腻。这就是我所拥有的:
BufferedReader input = new BufferedReader (new InputStreamReader(System.in));
String inputValues3;
// User enters 3 character values here
System.out.println("Enter 3 character values");
inputValues3= input.readLine();
String[] charValues = inputValues3.split("\\s+");
System.out.println(inputValues3); // prints out user character values
System.out.println(); // needs to print out ascii values
System.out.println(); // needs to print out following value
System.out.println(); // needs to print out preceding value
我尝试了几种不同的方法尝试将字符设置为整数值但是根据我尝试使其工作的方式得到了几个不同的错误。
答案 0 :(得分:4)
尝试类似:
inputValues3= input.readLine();
for (char ch : inputValues3.toCharArray()) {
System.out.println((int) ch);
}
答案 1 :(得分:1)
你需要这样做:
for (int i = 0, n = inputValues3.length(); i < n; ++i) {
char c = inputValues3.charAt(i);
if (!Character.isSpaceChar(c)) {
System.out.print((int)c);
}
}
System.out.println();
例如:迭代字符串中包含的字符,然后跳过该空格(使用Character.isSpaceChar
)。需要强制转换,否则System.out.print
将打印字符而不是其值。