java将字符串随机打乱并且可以重新组合的方法?

作者&投稿:乌阅 (若有异议请与网页底部的电邮联系)
Java String b = new String("thanks"); 怎么把字符串打乱 打乱后随机变成 例如"htsank"~

哎…还是看我的吧
public class Test {
public static void main(String[] args) {
String in=new String("thanks");
List list=Arrays.asList(in.split(""));
Collections.shuffle(list);
String out=new String();
for(String s:list){
out+=s;
}
System.out.println(out);
}
}

注意:Arrays.asList()不能用于基本类型数组,因为基本类型数组本身是一个引用,他会把这个引用当成唯一元素,而不会识别出数组的每个基本类型
比如Arrays.asList(“123”.toCharArray())是错误的
所以要视图把字符串分割成为字符串数字,而不是字符数组
借用“123”.split("") 可得到字符串数组“1”,“2”,“3”
再转成List去Shuffle就ok了

知道三种方法,方法一最简单.
方法一:
使用java自带工具的方法shuffle()。shuffle方法在java.util.Collections下,可以查下。

例如代码:
List list = Arrays.asList(arr);
Collections.shuffle(list);

方法二:数组下标index,取index+1到size-1的随机数为下标与以index为下标的数交换位置。对以 上操作遍历一遍就可以了。
方法三:用rand产生size个0到size-1的随机不重复的数。以上面产生的数为下标,重新得到新的数 组。

Scanner scanner = new Scanner(System.in);
System.out.print("输入字符串:");
String str = scanner.nextLine();
List<Map> mapList = new ArrayList<>();
int length = str.length();
for(int i = 0;i < length;i++){
int x = (int)(Math.random()*length);
Map map = new HashMap();
map.put("sort",x);
map.put("value",str.charAt(i));
mapList.add(map);
}
System.out.print("输出随机变换后的结果:");
mapList.stream()
.sorted(Comparator.comparing(o -> o.get("sort").toString()))
.forEach(x-> System.out.print(x.get("value").toString()));
System.out.println();


怎么把java编码设置成全局
扩展点的范围包括从用在常规表述过滤器中的简单字符串,到一个Jav a类的描述。任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse 插件也可以遵从其它插件定义的扩展点。除了解由扩展点定义的接口外,插件不知道它 们通过扩展点提供的服务将如何被使用。 利用Eclipse,我们可以将高级设计(也许是采用UML)...

Linux中 ps aux |grep java 为什么会将 grep --color=auto java 也显示...
ps会将grep进程的信息也显示出来。为什么ps aux |grep [j]ava就不会出现grep进程本身,因为此时grep进程的参数是grep --color=auto [j]ava,而grep [j]ava正则匹配的是'java'这个字符串,'[j]ava'这个正则表达式并不能匹配'[j]ava'这个字符串,所以自然不会出现grep进程本身。

什么是常量
常量是指在整个操作过程中其值保持不变的数据,通常在命令或程序中直接给出其值。它们可以是不随时间变化的某些量和信息,也可以是表示某一数值的字符或字符串,常被用来标识、测量和比较。数值型常量用整数、小数、科学计数法表示,如1234、555.33、4.5E等;字符型常量是用半角的单引号、双引号或方...

如何给microsoft Visual J++打包?
扩展点的范围包括从用在常规表述过滤器中的简单字符串,到一个Jav a类的描述。任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse 插件也可以遵从其它插件定义的扩展点。除了解由扩展点定义的接口外,插件不知道它 们通过扩展点提供的服务将如何被使用。 利用Eclipse,我们可以将高级设计(也许是采用UML)...

我想学习网面制做谁可以帮我介绍一些方法与代码。。。
19. 检查一段字符串是否全由数字组成 <!-- function checkNum(str){return str.match(\/\\D\/)==null} alert(checkNum("1232142141")) alert(checkNum("123214214a1")) \/\/ --> 20. 获得一个窗口的大小 document.body.clientWidth,document.body.clientHeight 21. 怎么判断是否是字符 if (\/[...

用eclipse运行程序时的问题
尽管大多数数据库将空字符串作为空值进行操作,如果我们使用的数据库不支持处理空字符串的话,我们必须写入附加的java代码,来创建自己的SQL插入声明。例如:if(test.length==0){sb.append(“null”);}else{sb.append(test);} JavaBean 的范围:JavaBean 的范围。 Scope 是一个具有生命时间的变量。JavaBean的范围在...

int与Integer的区别
int 是基本数据类型 Integer是其包装类,注意是一个类。为什么要提供包装类呢???一是为了在各种类型间转化,通过各种方法的调用。否则 你无法直接通过变量转化。比如,现在int要转为String int a=0;String result=Integer.toString(a);在java中包装类,比较多的用途是用在于各种数据类型的转化中。我...

学习JavaScript需要什么软件
以下是我的建议,供你参考:从最简单的语句写起,将javascript中的基本概念弄懂弄通。例如变量定义、创建数组、创建和使用对象、变量的作用域、字符串的操作、类型的转换(这个很绕人,javascript中所有类型之间都可以进行转换,很多javascript高手都不能完全搞懂这个问题)然后就是浏览器DOM编程,只要将基本...

什么叫半角?
全角标点占两个字节,半角占一个字节,而不管是半角还是全角,汉字都还是要占两个字节 在编程序的源代码中只能使用半角标点(不包括字符串内部的数据)在不支持汉字等语言的计算机上只能使用半角标点. 例如:在半角状态下打的句号只是一个圆点,而在全角下就是标准的句号。

什么是JSON+如何处理JSON字符串
JSON ( J ava s cript O bject N otation)是一种轻量级的 数据交换语言 ,以文字为基础,且易于让人阅读。尽管JSON是在 Javascript 的一个子集,但JSON是独立于语言的 文本格式 ,并且采用了类似于 C语言 家族的一些习惯。具体的一些处理方法可以参考这里:http:\/\/www.tuicool.com\/articles\/3Y3...

利辛县19452514929: 给一个有序的字符串怎么用java语言实现打乱顺序 -
人枯嘉瑞: 取一个随机数,这个数就是你目标串的长度n 然后取n个随机数,取模到数组长度,然后合起来就完了....

利辛县19452514929: java 编程实现接收键盘输入任意多个整数,并以逗号分开,然后选择数组排重或随机打乱.返回排序输 -
人枯嘉瑞: import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Scanner; import java.util.Set;/*** java 编程实现接收键盘输入任意多个整数,并以逗号分开, 然后选择数组排重或随机打乱.返回排序输...

利辛县19452514929: java 输入一个字符串遇到数字就截掉并且排重 -
人枯嘉瑞: import java.util.LinkedHashSet; import java.util.Set; public class CharAndNumber { public static void main(String[] args) { String a = "ascad12asd"; Set<Character> test = new LinkedHashSet<Character>(); char[] cs = a.toCharArray(); for (int i = 0; ...

利辛县19452514929: Java String b = new String("thanks"); 怎么把字符串打乱 打乱后随机变成 例如"htsank" -
人枯嘉瑞: 哎…还是看我的吧 public class Test { public static void main(String[] args) { String in=new String("thanks"); List<String> list=Arrays.asList(in.split("")); Collections.shuffle(list); String out=new String(); for(String s:list){ out+=s; } System.out.println(...

利辛县19452514929: java将两个字符串一对一拆分,然后重组
人枯嘉瑞: String s1 = "abcdef"; String s2 = "1234"; String s3 = ""; int s1Length = s1.length(); int s2Length = s2.length(); for(int i=0; i&lt;(s1Length&lt;s2Length?s1Length:s2Length); i++){ s3 += ""+s1.charAt(i)+s2.charAt(i); } if(s1Length&gt;=s2Length...

利辛县19452514929: 将字符串中的数字和字母分别输出,可以重复 java实现 -
人枯嘉瑞: public static void print(String str){ StringBuffer sb1 = new StringBuffer(); StringBuffer sb2 = new StringBuffer(); int length = str.length(); for(int i=0;i char temp = str.charAt(i); if(Character.isDigit(temp)){ sb1.append(temp); }else { sb2.append(temp); } } ...

利辛县19452514929: 【java】求助怎么把一个数组元素随机打乱顺序,谢谢~~~ -
人枯嘉瑞: 晕.不用那么麻烦.先转化为list(为什么不一开始就用List呢?) 例:String[] arr = new String[] {"1", "2"}; List list = Arrays.asList(arr); 直接调用shuffle,就是随机排序 例:Collections.shuffle(list); 直接输出就是你想要的结果

利辛县19452514929: 把一个字符串“abcd...xyv”26个因为字母打乱输出,Java编写的,但是有重复出现的,求帮忙
人枯嘉瑞: package fengb; import java.util.Random; public class TestStr { public static void main(String[] args) { int i; int ii = 0; String str = "abcdefghijklmnopqrstuvwxyz"; int[] mm = new int[str.length()]; char[] cc = new char[str.length()]; for (i = 0; i < str.length(); ...

利辛县19452514929: 如何在JAVA中随机打乱输出一组数字而不重复 -
人枯嘉瑞: 这是后改的:int length = num1-num2; int i = 0; int j = num1; if(length<0){ length = -length; j = num2; } int[] sum = new int[length+1]; while(i++<=length) sum[i] = j - length + i; int temp; while(i-->0){ int k =(int)(Math.random()*length); temp = sum[k]; sum[k] ...

利辛县19452514929: java中有没有将一个字符串重复N次功能类或方法 -
人枯嘉瑞: java字符串连接一般有三种方式:1. 直接用+号连接. 2. 用StringBuilder类 . 3. 用StringBuffer类. 三种字符串连接的比较:StringBuffer是线程安全的; StringBuilder不是线程安全的,但性能稍好一些,在不需要线程安全的字符串连接,尽量使...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网