我是java的初学者,正在编写一个程序,我希望用户为String变量wordEntered输入的内容有一个连字符来分隔字母,但减少每个字符后的字符数线。 防爆。 wordEntered =“宝贝”;
期望的输出:
B-a-b-y
B-a-b
B-a
B
目前,这就是我的代码,
for (int i =0 ; i<wordEntered.length(); i++) {
if (i < wordEntered.length()-1)
System.out.print(wordEntered.charAt (i) +"-");
else
System.out.println(wordEntered.charAt (i));
}
我一直试图解决这个问题几天,甚至无法接近。请帮帮我。
答案 0 :(得分:2)
你需要有一个嵌套的for循环来执行此操作:
for (int j = wordEntered.length(); j > 0; j--) {
for (int i = 0; i < j; i++) {
if (i < j - 1)
System.out.print(wordEntered.charAt(i) + "-");
else
System.out.println(wordEntered.charAt(i));
}
System.out.print(StringUtils.repeat(" ", wordEntered.length() - j + 1));
}
注意外部循环从单词的长度变为0.此外,我使用了StringUtils.repeat
。如果您不能使用它,那么您可以编写一个简单的循环来打印那么多空格。
答案 1 :(得分:1)
你走了:
public class Main {
public static void main(String[] args){
String wordEntered = "BABY";
int nb_spaces = 0;
while (wordEntered.length() > 0){
// printing spaces
for (int i =0 ; i<nb_spaces; i++)
System.out.print(" ");
nb_spaces += 1;
// your loop
for (int i =0 ; i<wordEntered.length(); i++)
if (i < wordEntered.length()-1)
System.out.print(wordEntered.charAt (i) +"-");
else
System.out.println(wordEntered.charAt (i));
// removing last character
wordEntered = wordEntered.substring(0, wordEntered.length()-1);
}
}
}