如何将字符串数组进行重新组合,就是打乱字符串数组元素的顺序。比如String[] sre={"12.","47@","..."},从键盘输入放到字符串数组中,然后打乱他们的顺序,重新组合成一个字符串String str=“12.47@...”或者“[email protected].”等,并将这些重组的字符串再放入一个字符串数组中。

解决方案 »

  1.   

    字符串数组组合成字符串、遍历数组然后一个个concat或append拼接就可以了、
    字符串拆分成数组要有个标准吧、以什么来拆分、
      

  2.   

    我是说随机拼接啊,用append不能做到随机拼接把。还有我是说把随机拼接后生成的每一个字符串放入数组中,这个应该好实现。就是随机拼接问题
      

  3.   

    试试这样吧、random取一个0到数组长度的数、循环数组的时候取当前的数跟这个随机数进行比较、相等就拿出来丢在数组里、
      

  4.   

    你说的随机拼接
    public static void main(String[] args) {
    String[] sre = { "12.", "47@", "..." };
    List<String> values = new ArrayList<String>();
    for (String string : sre) {
    values.add(string);
    }
    StringBuffer sb = new StringBuffer();
    for (String string : sre) {
    sb.append(values.remove(new Random().nextInt(values.size())));
    }
    System.out.println(sb);
    }
      

  5.   

    打乱的伪代码是:
    for (int i=0; i<sre.length;i++) {
      swap(sre, rand.nextInt(sre.length), rand.nextInt(sre.length));
    }
    当然这个会破坏原有数组元素的顺序
    当然效率的话就不算最高的,如果要效率高就是直接乱序取出该数组元素,伪代码类似:
    StringBuffer sb;
    for (int i=sre.length; i>0; i--) {
      int r = rand.nextInt(i);
      sb.append(sre[r]);
      sre[r] = sre[i-1]; // 置换
    }
    注意处理完毕后会破坏原有数组内容。
      

  6.   

    能继续把它放到一个list里面吗,如果加上循环的话。
    String[] strs = str.split(",");

    List<String> values = new ArrayList<String>();
    List<String> list = new ArrayList<String>();
    for (String string : strs) {
    values.add(string);
    }
    StringBuffer sb = new StringBuffer();
    for(int i=0;i<100;i++){
    for (String string : strs) {
     sb.append(values.remove(new Random().nextInt(values.size())));
     }
    list.add(sb);
    }