2015-01-21 41 views
-2

我想打印出一个字符串的ascii值,打印下一个字符,并打印前面的字符。因此,如果用户输入b c d我希望我的程序打印出98 99 100,也c d e和最后a b c。现在是凌晨3点半,为了让这些工作正常进行,我的脑子有点油炸了。以下是我有:Java Ascii值

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 

我已经尝试了几种不同的方式试图使人物为整数值,但是这取决于我如何努力,使其工作已经得到了几个不同的错误。

+2

要打印出Ascii值,只需将'char'转换为'int'并打印出 – 2015-01-21 10:40:11

+0

,然后将字符串转换为char,然后将char转换为int? – 2015-01-21 10:42:11

+2

*“现在是凌晨3点半,我的大脑因试图让它们工作而有点油炸。”* - 好吧,上床睡觉。凌晨3:30,你无法学习编程。 – 2015-01-21 10:43:19

回答

4

试着这么做:

inputValues3= input.readLine(); 
for (char ch : inputValues3.toCharArray()) { 
    System.out.println((int) ch); 
} 
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将会打印字符而不是它的值。