我有一组 ValueA 和 ValueB( int
type) 。我正在使用for
循环从数组中读取每个值。我想在一个字符串中连接所有的值。这些值应该是这样的形式
ValueA1":"valueB1"|"ValueA2":"valueB2"|"ValueA3":"valueB3"|"ValueA4":"valueB4"|"....
我想要这个在Java中,请有人帮我写代码..
我有一组 ValueA 和 ValueB( int
type) 。我正在使用for
循环从数组中读取每个值。我想在一个字符串中连接所有的值。这些值应该是这样的形式
ValueA1":"valueB1"|"ValueA2":"valueB2"|"ValueA3":"valueB3"|"ValueA4":"valueB4"|"....
我想要这个在Java中,请有人帮我写代码..
你可以试试这样的
int[] valueA = methodWhichFillsA();
int[] valueB = methodWhichFillsB();
StringBuilder sb = new StringBuilder();
int maxSize = Math.max(valueA.length, valueB.length);
for(int i = 0; i < maxSize; i++){
if(i > 0)
sb.append("|");
if(i < valueA.length)
sb.append(valueA[i]);
sb.append(":");
if(i < valueB.length)
sb.append(valueB[i]);
}
System.out.println(sb.toString());
这将评估 valueA 和 valueB 之间的最大数组的大小,循环这个大小。如果元素存在,则打印它。第一个 if 用于添加分隔符,如果是第一次迭代,则不需要“|”
只是一种不同的方式,这使用番石榴
private String test(int[] a, int[] b) {
List<Integer> al = Lists.newArrayList();
List<Integer> bl = Lists.newArrayList();
for (Integer ai : a) {
al.add(ai);
}
for (Integer bi : b) {
bl.add(bi);
}
List<String> sets = Lists.newArrayList();
Iterator<Integer> itera = al.iterator();
Iterator<Integer> iterb = bl.iterator();
while(itera.hasNext() && iterb.hasNext()) {
sets.add(itera.next()+":"+iterb.next());
}
return Joiner.on("|").join(sets);
}
我惊讶地发现没有原始数组来列出方法。如果你能想到一个优雅的方法来做到这一点,除了把它拉到另一个方法中,这个代码可以变得更干净。
假设数组的大小不同,此解决方案会将它们压缩在一起,直到较短的数组结束:
StringBuilder sb = new StringBuilder();
for(int i = 0; i < Math.min(arr1.length, arr2.length); i++){
sb.append( arr1[i] ).append("\":\"").append( arr2[i] ).append("\"|\"");
}
System.out.println(sb.toString());