如何将整数转换为char?

时间:2015-01-26 13:31:08

标签: java

我想编写一个程序,使用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中看到的那样去了。我应该摆脱它吗?

5 个答案:

答案 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);
  • 有一个专门用于从扫描仪中读取int的api,可能值得查看here

答案 2 :(得分:0)

让我们来看看你的计划在做什么。

Scanner input = new Scanner(System.in);

请注意,inputScanner个对象。

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