随机找出24个不一样的字,在把一个3-6个字的答案字串插到24个字的字串中替换
想从一堆字中,随机找出24个不一样的字,在把一个3-6个字的答案字串插到24个字的字串中替换。 帮我看看那个地方错了。
Java code?public static void main(String[] args) { String srcStr = "罗纳纳纳的尔包括了品牌这里提供史上最全的包括了品牌多约狱登尼泰括大无乌艾是什森供史上布全的默士好人民拜姆康的这里詹提供史阿科顿上斯全的卡品牌多阿比特李尔汉白子皇徐品娘法秦岳文供史上牛妹的包括了飞孟国理的尔约查括了夫德里人里史上女的包括了局居翰士艾牌森盖弗斯约尔罗牌逊这翰里提供史上最福全茨的比安小布娜茨艾什顿列汤林克斯彼宁得人克鲁娜姆德斯科"; String destString = "1234"; int lengh = srcStr.length(); Random random = null; boolean isTrue = true; Map<Integer, Integer> map = new HashMap<Integer, Integer>(); while (isTrue) { random = new Random(); int index = random.nextInt(lengh); if (!map.containsKey(index)) { map.put(index, index); } if (map.size() == 4) { isTrue = false; } } char[] srcArray = srcStr.toCharArray(); char[] destArray = destString.toCharArray(); int count = 0; for (Integer key : map.keySet()) { srcArray[key] = destArray[count]; count++; } System.out.println(String.valueOf(srcArray)); }
public String havaStr(String str){ String[] s = str.split(""); List<String> list = Arrays.asList(s); List<String> delete=new ArrayList<>(list); System.out.println("第0位数为:"+delete.get(0)); delete.remove(0); List<String> result=new ArrayList<String>(); while(result.size()<24){ double d = Math.random(); int i=(int)(d*delete.size()); System.out.println(i);; result.add(delete.get(i)); delete.remove(i); } System.out.println(result.toString()+"长度:"+result.size()); StringBuilder builder=new StringBuilder(); for(String o:result){ builder.append(o); } return builder.toString(); }
|