这是我的代码,我将在列表数组中获取一组值。
如何使用字符串构建器在所有这些元素之间附加双引号和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);
}
答案 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"