Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
连接由管道和';分隔的整数值:';使用java_Java_String Concatenation - Fatal编程技术网

连接由管道和';分隔的整数值:';使用java

连接由管道和';分隔的整数值:';使用java,java,string-concatenation,Java,String Concatenation,我有ValueA和ValueB的数组(inttype)。我使用for循环从数组中读取每个值。 我想将所有这些值连接在一个字符串中。这些值的形式应如下所示 ValueA1":"valueB1"|"ValueA2":"valueB2"|"ValueA3":"valueB3"|"ValueA4":"valueB4"|".... 我想在Java这个,请一些ne可以帮助我的代码 你可以试试这样的东西 int[] valueA = methodWhichFillsA(); int[] valueB =

我有ValueA和ValueB的数组(
int
type)。我使用
for
循环从数组中读取每个值。 我想将所有这些值连接在一个字符串中。这些值的形式应如下所示

ValueA1":"valueB1"|"ValueA2":"valueB2"|"ValueA3":"valueB3"|"ValueA4":"valueB4"|"....  

我想在Java这个,请一些ne可以帮助我的代码

你可以试试这样的东西

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());
int[]valueA=methodWhichFillsA();
int[]valueB=methodWhichFillsB();
StringBuilder sb=新的StringBuilder();
int maxSize=Math.max(valueA.length,valueB.length);
对于(int i=0;i0)
某人加上(“|”);
如果(i<值a.长度)
某人附加(价值a[i]);
某人加上(“:”);
如果(i<值b.长度)
某人附加(价值b[i]);
}
System.out.println(sb.toString());
这将计算valueA和valueB之间的最大数组的大小,在此大小上循环。如果元素存在,则打印该元素。
第一个if用于添加分隔符,如果它是第一次迭代,不需要“|”

假设数组大小不同,此解决方案将将它们压缩到一起,直到较短数组的末尾:

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());
StringBuilder sb=新建StringBuilder();
for(int i=0;i
只是另一种方式,它使用番石榴

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);

}
私有字符串测试(int[]a,int[]b){
List al=Lists.newArrayList();
List bl=Lists.newArrayList();
for(整数ai:a){
al.add(ai);
}
for(整数bi:b){
bl.add(bi);
}
列表集=Lists.newArrayList();
迭代器itera=al.Iterator();
迭代器iterb=bl.Iterator();
while(itera.hasNext()&&iterb.hasNext()){
set.add(itera.next()+“:”+iterb.next());
}
返回Joiner.on(“|”)join(集合);
}

我惊讶地发现没有原始数组来列出方法。如果您能想出一种优雅的方法来实现这一点,除了将其拉入另一个方法之外,还可以使此代码变得更干净

a)阵列的长度是否相等b)如果不是,我们应该如何处理一个阵列的较长部分b)阵列的长度是否相等。。谢谢你的回答