如何使用字符串生成器在元素之间附加双引号和“OR”

时间:2014-03-27 08:29:44

标签: java arrays

这是我的代码,我将在列表数组中获取一组值。

如何使用字符串构建器在所有这些元素之间附加双引号和OR并保存为字符串?

是否可以将元素分开?例如,我会得到:

a,b,c,d,e,f,g,h,i,j 

在数组中我希望输出为

"a" OR "b" OR "c" OR "d" 

和另一次迭代中的剩余元素。由于有10个元素我在上面的格式中需要5个元素。在字符串构建器中是否可行。在我的例子中,我总共提到了10个元素,但实际上我得到的元素超过1000个。这是我的代码。

List<String> test = new ArrayList<String>();
while (rs.next()) {
    String url = rs.getString("rssUrl");
    test.add(url);
} 

4 个答案:

答案 0 :(得分:1)

在循环中连接时使用StringBuilder是个好主意,因为它会比简单的String连接具有更好的性能。下面是一个示例代码,如何使用StringBuilder和模运算来检查结果中需要多少元素:

final int nbElems = 5;
List<String> test = new ArrayList<String>(Arrays.asList("a,b,c,d,e,f,g,h,i,j".split(",")));

StringBuilder sb = null;
for (int i=0; i<test.size(); i++) {
    if (i%nbElems==0)
        sb = new StringBuilder("\"");
    else
        sb.append("\" OR \"");
    sb.append(test.get(i));
    if (i%nbElems==(nbElems-1) || i==(test.size()-1)) {
        sb.append("\"");
        final String result = sb.toString();
        System.out.println(result); // TODO: do something
    }
}

<强>输出:

"a" OR "b" OR "c" OR "d" OR "e"
"f" OR "g" OR "h" OR "i" OR "j"

答案 1 :(得分:1)

String base = "a,b,c,d,e,f,g,h,i,j";
String[] letters = base.split(",");
StringBuilder builder = new StringBuilder();
for (int i = 0; i < letters.length; i++) {
    if (i > 0)
       builder.append(" OR ");
    builder.append("\"").append(letters[i]).append("\"");
}

答案 2 :(得分:0)

这是获得它的一种方式,还有其他一些方法:

public static void main(String[] args) {
    List<String> list = Arrays.asList("a","b","c","d","e","f","g","h","i","j");
    StringBuilder sb = new StringBuilder(String.format("\"%s\"", list.get(0)));
    for (int i = 1; i < list.size(); i++) {
         sb.append(" OR ").append(String.format("\"%s\"", list.get(i)));
    }

    System.out.println(sb.toString());
}

输出应为:

"a" OR "b" OR "c" OR "d" OR "e" OR "f" OR "g" OR "h" OR "i" OR "j"

答案 3 :(得分:0)

以下是我使用split和String的贡献。

String[] letters = "a,b,c,d,e,f,g,h,i,j".split(",");
String concat = "";
int index = 0;
int itemPerLine = 5;

while(index < letters.length) {
    concat += "\"" + letters[index] + "\"";
    index++;
    if (index%itemPerLine == 0 || index==letters.length){
        System.out.println(concat);
        concat = "";
    } else {
        concat += " OR ";
    }
}

根据要求,它输出:

"a" OR "b" OR "c" OR "d" OR "e"
"f" OR "g" OR "h" OR "i" OR "j"