我对输出有问题:当它没有假设时,它总是会在最后添加一个额外的星。样品:
m*i*c*h*a*e*l*
假设在l
或最后一个字符后没有星号。任何人都可以帮我解决这个问题吗?到目前为止,这是我的代码:
import java.util.Scanner;
public class CoolSet2Problem3
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
System.out.println("Please enter your first name in all lowercase: ");
String name = keyboard.next();
int n = 0;
String star = "*";
while (n < name.length())
{
System.out.print(name.charAt(n) + star);
n++;
}
}
}
我的老师告诉我,我们可能需要使用ASCII字符集,我不知道。
答案 0 :(得分:0)
当你打印最后一个字符时,你会在它的末尾添加一个星......这就是为什么最后添加一个星。
试试这个:
while (n < name.length() - 1)
{
System.out.print(name.charAt(n) + star);
n++;
}
System.out.print(name.charAt(n));
答案 1 :(得分:0)
有很多方法。一个简单的方法是检查边界条件,看是否应该打印星号,例如
while (n < name.length())
{
if (n != 0) System.out.print(star);
System.out.print(name.charAt(n));
n++;
}