我是Java编程的初学者,我想根据用户输入打印字符,但是我没有得到正确的输出。
char any;
double b;
double c;
double n;
System.out.print("Input character(s): ");
any = kets.next().charAt(0);
System.out.print("Input range: ");
n = Integer.parseInt(reader.readLine());
for(b=1; b<=n; b++)
{
for(c=1; c<=b; c++)
{
System.out.print(any);
}
System.out.println();
}
}
}
我得到的输出:
Input character(s): JSP
Input range: 5
J
JJ
JJJ
JJJJ
JJJJJ
输出应该是:
Input character(s): JSP
Input range: 5
JSP
JSP JSP
JSP JSP JSP
JSP JSP JSP JSP
JSP JSP JSP JSP JSP
答案 0 :(得分:1)
因为any = kets.next().charAt(0);
这一行将return
character
位于下一个标记的第0位。
因此对于输入字符串&#34; JSP&#34;。 - `kets.next()。charAt(0);&#39;将返回: J
如果您想要整个token
,请使用String any = kets.next();
希望你的怀疑是明确的。
答案 1 :(得分:0)
您必须使用字符串来存储输入,而不是char
。您当前的代码看起来存储用户条目的第一个字母:.charAt(0);
您可以找到文档here。
char
一次只能存储一个字符,而字符串可以容纳更多(最多2,147,483,647个字符,也读为2 ^ 31 -1)
String any; //Change any from type char to String
double b;
double c;
double n;
System.out.print("Input character(s): ");
any = kets.next();
//Retrieve just the next() String..no need to delve deeper for a character.
System.out.print("Input range: ");
n = Integer.parseInt(reader.readLine());
for(b=1; b<=n; b++)
{
for(c=1; c<=b; c++)
{
System.out.print(any);
}
System.out.println();
}