我想编写一个程序,使用Scanner类接受来自用户的整数,并显示它的char数据类型表示。假设用户只输入一个0到127之间的数字。截至目前,我有这个。
import java.util.Scanner;
public class ASCIICharacterMcAfooseMark {
public static void main (String[] args) {
Scanner input = new Scanner(System.in);
//This should allow the user to enter a number
System.out.print("Enter a number:");
String str = input.nextLine();
System.out.println(input);
//Need to get this to allow the entered number to show char value
int num = 0 - 127;
char c;
c = (char)num;
System.out.println(c);
}
}
当我进入命令提示符时,它允许我输入一个数字,但我得到的只是一堆单词然后是问号。任何帮助,将不胜感激。我在Java中使用Notepadd ++。
编辑:对于32,char表示将是空格。 编辑:对于System.out.println(输入);我按照我在老师的powerpoint中看到的那样去了。我应该摆脱它吗?
答案 0 :(得分:1)
你是什么意思" char数据类型表示"?给出一个输入 32(例如),什么是正确的"字符数据表示" 在这种情况下显示?
当我进入命令提示符时,它允许我输入一个数字,但是 我得到的只是一堆词,然后是一个问号。
并非所有int
都映射到纯文本char
。其中一些映射到空格,一些映射到退格,一些映射到#34;打印换行符#34;一些映射到"调制解调器控制字符"。首先,请查看ACII表中0-127的位置;但是,Java确实使用Unicode,所以如果你想知道127以上的事情(包括你的负数),请查看Unicode。
另外,请记住,如果您没有完全填充的"字形集" (绘制到屏幕的字体部分,然后是各种"代码点"(与字形相对应的数字)无法绘制。通常,这可以通过许多具有替换的系统来解决字形,这是你看到的那个时髦的问号。
答案 1 :(得分:0)
更改行:
int num = 0 - 127;//your num will always hold -127
要
int num = Integer.parseInt(str);//so you get integer representation of number string you just entered.
注意:
System.out.println(input);
您尝试打印输入的字符串用户,因此您可能需要将其更改为System.out.println(str);
答案 2 :(得分:0)
让我们来看看你的计划在做什么。
Scanner input = new Scanner(System.in);
请注意,input
是Scanner
个对象。
System.out.println(input);
这里显示Scanner
对象本身。 不用户输入的内容,因为它位于变量str
中。也许你想这样做:
System.out.println(str);
然后这一行:
int num = 0 - 127;
这只是将num
设置为-127
。您想要做的是将str
中的任何内容解析为int
:
int num = Integer.parseInt(str);
答案 3 :(得分:0)
如果您假设用户将从0到127放置一个数字,那么请尝试这样:
import java.util.Scanner;
public class ASCIICharacterMcAfooseMark {
public static void main (String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a number:");
String str = input.nextLine();
System.out.println(input);
int num = Integer.parseInt(str); //you weren't using the value from the input
char c;
c = (char)num;
System.out.println(c);
}
}
答案 4 :(得分:-1)
char c;
Scanner input = new Scanner(System.in);
System.out.print("Enter a number:");
int ip = input.nextInt();//<---- get integer
c = (char)ip;// cast int value to char
System.out.println(c);
如果input
为97 output
,则为a