打印出一个字符串数组,但每次都替换一个元素。 Java的

时间:2016-03-01 21:43:11

标签: java arrays string

我如何多次打印出一个字符串数组,每次用“ - ”替换其中一个单词? 如果数组有“Hello”“Hi”“Hey”那么它应该打印

“ - 嗨嘿”

“你好 - 嘿”

“你好嗨 - ”

这是我到目前为止所拥有的

 public class SkipArgs
{
    public static void main(String[] args)
    { 
    int capacity = 1;
    capacity += args.length;
    String[] str = new String[capacity];

    for(int i=0; i<args.length; i++)
    {
        for (int j=0; j<args.length; j++)
        {str[j] = args[j];
        printExceptOne(str[j], i);
        }   


}
}

public static void printExceptOne(String str, int j)
{

   System.out.print(str+" ");
}
}

我不知道如何更换“ - ”

3 个答案:

答案 0 :(得分:0)

外部循环应该控制不打印哪个数组元素。所以它可能看起来像这样:

for (int i = 0; i < args.length; i++) {
    for (int j = 0; j < args.length; j++) {
        // first print a separator if not the first element on the line
        if (j > 0) System.out.print(" ");

        // now print either the j-th arg or a "-"
        if (j == i) {
            System.out.print("-");
        } else {
            System.out.print(args[j]);
        }
    }
    System.out.println();
}

答案 1 :(得分:0)

让我们回顾你的代码思想

int capacity = 1;
capacity += args.length;
String[] str = new String[capacity];

这意味着您的str数组的长度为4,即 NOT 您想要的长度。它应该只是:

String[] str = new String[args.length];

现在,如果您不想使用args,则需要向str添加元素:

for (int i=0; i<args.length; i++)
{
    str[i] = args[i];
}

现在我们制作了数组,您可以执行以下操作:

String temp = "";
for (int i=0; i<str.length; i++)
{
    temp = "";
    for (int j=0; j<str.length; j++)
    {
        if (i == j) 
        {
            temp = temp + "-";
        }
        else
        {
            temp =  temp + str[j];
        }
    }
    System.out.println(temp);
}

答案 2 :(得分:0)

- 按以下顺序进入

第一行:第一名 第二行:第二名 第三行:第三名

所以基于这个系列,可以通过将嵌套循环变量等同于其他建议来完成。类似我们可以实现任何其他逻辑