如何在for循环中添加连字符

时间:2018-04-11 20:03:36

标签: java string loops

我是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));
    }

我一直试图解决这个问题几天,甚至无法接近。请帮帮我。

2 个答案:

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