写一个程序,读取你的名字,并用星号分隔每个字母显示你的名字

时间:2015-10-26 21:22:09

标签: java

我对输出有问题:当它没有假设时,它总是会在最后添加一个额外的星。样品:

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字符集,我不知道。

2 个答案:

答案 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++;
}