[英]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.nextLine()
而不是scanner.next()
(从此扫描器中查找并返回下一个完整的令牌)。
更改为
String str = input.nextLine();
代替
String str = input.next();
input.next()
读取令牌,而不是您期望的行。
您需要使用
String str = input.nextLine();
代替
String str = input.next();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.