繁体   English   中英

Java程序未打印所有ASCII值

[英]Java program not printing all ASCII values

我已经编写了一个Java程序,该程序打印我给出的输入语句的相应ASCII值。 问题是,它没有打印所有值。

public class test {

    public static void main(String[] args) 
    {
        System.out.println("Enter the string to be converted");
        Scanner input = new Scanner(System.in);
        String str =input.next();
        char ch[]=str.toCharArray();
        int i =0;
        for(i =0;i<str.length();i++)
        {
            int ascii=(int)ch[i];   
            System.out.println(ascii+"\n");
        }

        input.close();
    }
}

例如:“最古老的古典希腊文和拉丁文文字之间几乎没有或没有空格,可以写成文字”,它只印有84,104,101。

它应该打印句子中的所有值。

采用

 String str =input.nextLine();

获取ASCII值的ASCII一种方法。

String s = "The oldest classical Greek";
byte[] bytes = s.getBytes("US-ASCII");
for(int i=0;i<bytes.length;i++)
System.out.println(bytes[i]);//prints ASCIIs
String str = input.next();

应该:

String str = input.nextLine();

Scanner#next

查找并返回此扫描仪的下一个完整令牌。 完整的标记在其前面,然后是与定界符模式匹配的输入。

Scanner#nextLine

使该扫描仪前进到当前行之外,并返回被跳过的输入。 此方法返回当前行的其余部分,但不包括最后的任何行分隔符。 该位置设置为下一行的开始。

您应该使用scanner.nextLine()而不是scanner.next() (从此扫描器中查找并返回下一个完整的令牌)。

更改为

String str = input.nextLine();

代替

String str = input.next();

input.next()读取令牌,而不是您期望的行。

您需要使用

String str = input.nextLine();

代替

String str = input.next();

IDEONE演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM