【问题标题】:How do I print an array without the first term?如何打印没有第一项的数组?
【发布时间】:2013-08-02 19:20:58
【问题描述】:

我正在编写一个程序来根据输入到控制台的命令打开链接。命令是“/wiki >term array

这是我当前构建术语数组以发送到搜索字段的代码:

SearchTerm = Arrays.toString(StringTerm).replace("[", "").replace("]", "").replace(",", "");

现在,所做的就是让所有术语在我的斜杠命令中通过单词“/wiki”并将它们打印到一个列表中。它还删除了逗号和方括号,使其打印的内容更清晰。

-- 我想为数组中的第一个词添加一个特定的参数,所以如果是一个特定的代码,例如“/wiki wikipedia chickens”,它会将用户发送到 wikipedia 词“chickens” " 搜索而不是默认的 wiki 搜索词“维基百科鸡”。

使用我必须构建术语数组的当前代码,我需要使用 Arrays.toString 以便以可读的方式打印整个数组,但我不希望它在之后打印数组中的第一个术语它通过了我的关键字过滤器?

当我使用这段代码时:

WIKI_HYPERLINK = WIKI_WIKIPEDIA + StringTerm[1] + StringTerm[2] + StringTerm[3] + StringTerm[4] + StringTerm[5]; 

它使用数组项 1 - 5,但如果只有 3 个输入项会抛出错误,如果超过 5 个则会抛出错误。

所以我的问题是:如何获得不包括第一项的整个数组?

【问题讨论】:

    标签: java arrays


    【解决方案1】:

    您可以在循环中使用StringBuilder

    //  StringBuilder with initial String
    StringBuilder builder = new StringBuilder(WIKI_WIKIPEDIA); 
    for (int i=1; i < stringTerm.length; i++) {
       builder.append(stringTerm[i]);
    }
    String searchTerm = builder.toString();
    

    【讨论】:

    • 非常感谢,我想我可以用这段代码来管理。我没有想过使用 for 循环来将数组中的字符串放入一个大行中,但是我又是一个非常新的程序员。但我还有一个问题:代码的哪一部分删除了数组中的第一项?
    • 循环从索引 1 开始 - 这是数组中的第二个元素,即(实际上并没有删除它,只是跳过它)
    • 哦,我可以把它放在一个 if 语句中,对吧? if(StringTerm[0] == "wikipedia") { for loop }
    • 您需要使用String#equals 来比较Strings,== 运算符比较对象引用。 if ("wikipedia".equals(stringTerm[i])) {
    • 哦,好的,谢谢。有很多我不知道的字符串规则。你帮了我很多。
    【解决方案2】:

    你可以试试这样的:

    String outputString = "";
    for (int i = 1; i < StringTerm.Length; i++)
        {
            outputString += StringTerm[i];
        }
    

    如果 Java 中有类似 if (Array.Element != 0) 的东西,您也可以使用 for each 循环,但我不知道有哪一种。只需编辑上面的代码以获取您需要的格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      • 2015-06-28
      • 1970-01-01
      • 1970-01-01
      • 2020-02-25
      相关资源
      最近更新 更多