我的输出有问题:它总是在没有假设的情况下在最后加上一个额外的星号。示例:编写一个程序,读出你的名字,并用星号分隔每个字母
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字符集,这我不知道的东西的想法。
你明白为什么会发生这种情况吗?你有关于如何阻止最后一个'*'出现的想法吗?你可以弄明白这一点! –
您希望为该最后一颗明星添加特殊情况,以便只在当前角色**不是最后一个角色时连接/追加该角色,或者在添加完所有星星后删除最后一颗星星。 – nem035
在循环中为每个字符添加一个'*'。事情是你不应该与最后一个字符。因此,您需要相应地修改您的循环 – trungdinhtrong