我们在大学接受了关于unicode和ASCII和字符等的练习。练习的一部分是找到一种方法来读取控制台中的用户输入,该输入必须是char并且返回ASCII和Unicode。
我觉得很容易,但我的扫描仪不会扫描。因为扫描仪没有.nextChar
方法。我习惯使用String方法(scanner.nextLine
)。在下一步中,我将singlechar-String转换为带有char ... = s.charAt
的字符,并从那里我想获得十六进制和ASCII。无论我做什么,我的扫描仪都不会扫描字符串。这是代码:
do{
System.out.println("Geben Sie ein Zeichen ein um den dazugehoerigen ASCII- und Unicode anzuzeigen");
input = scan.nextLine();
} while(input.length() >= 2 & input.length() < 1);
zeichen = input.charAt(0);
i = (int) zeichen;
System.out.println("Sie haben " + zeichen + " gewählt.\nDer dazugehoerige ASCII-Code ist " + i + "\nDer dazugehoerige Unicode ist " + (buffer.toString()+ Integer.toHexString(i)));
答案 0 :(得分:0)
你的情况错了:
(input.length() >= 2) & (input.length() < 1)
和布尔条件可以作为&amp;&amp;而不是&amp;
另一方面,没有任何字符串,其长度可以 大于2且小于1 同时!这样的条件永远不会满足!
答案 1 :(得分:0)
条件错误,因为它永远不会是true
。
也许你应该用这个:
input.length() >= 2 || input.length() < 1
此外,您的扫描仪是否从键盘读取? 它应该是这样的:
Scanner scan = new Scanner(System.in);
尝试了这段代码,效果很好:
String input = null;
Scanner scan = new Scanner(System.in);
do{
System.out.println("Geben Sie ein Zeichen ein um den dazugehoerigen ASCII- und Unicode anzuzeigen");
input = scan.nextLine();
}while(input.length() >= 2 || input.length() < 1);
char zeichen = input.charAt(0);
int i = (int) zeichen;
System.out.println("Sie haben " + zeichen + " gewählt.\nDer dazugehoerige ASCII-Code ist " + i + "\nDer dazugehoerige Unicode ist " + (buffer.toString()+ Integer.toHexString(i)));
答案 2 :(得分:0)
input.length()不能&gt; = 2且&lt; 1同时。检查你的状况。
答案 3 :(得分:0)
我同意以前的所有评论。 你必须添加更多的代码,所以我们可以检查你的扫描仪(它是用System.in初始化的吗?)和其他东西。
你只需要考虑单字母输入吗? 否则,一个for循环,其中字符串中的每个字符都更改为ASCII和UNICODE对我更有意义;如果你只有单字符输入我会推荐一个错误陈述或一个例外,以便用户知道他的输入错误!
最后,如果你用德语命名你的变量(这不是坏事),那就用它们全部来做,否则会让人感到困惑!我自己犯了这个错误,有时会松动我的变量!
以下是我谈到的for循环的一个例子:
String input = "";
Scanner scan = new Scanner(System.in);
char zeichen = ' ';
System.out.println("Geben Sie ein Zeichen ein");
input = scan.nextLine();
for(int a=0; a<input.length();a++)
{
zeichen = input.charAt(a);
int i = (int) zeichen;
System.out.println("Sie haben " + zeichen + " Ascii: " + i + " Unicode: "); //this line has been slightly simplified
}