java打亂代碼,java代碼亂碼

java將字符串隨機(jī)打亂并且可以重新組合的方法?

Scanner scanner = new Scanner(System.in);

創(chuàng)新互聯(lián)公司專注于龍馬潭網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供龍馬潭營(yíng)銷型網(wǎng)站建設(shè),龍馬潭網(wǎng)站制作、龍馬潭網(wǎng)頁(yè)設(shè)計(jì)、龍馬潭網(wǎng)站官網(wǎng)定制、微信平臺(tái)小程序開發(fā)服務(wù),打造龍馬潭網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供龍馬潭網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

System.out.print("輸入字符串:");

String str = scanner.nextLine();

ListMap 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("輸出隨機(jī)變換后的結(jié)果:");

mapList.stream()

.sorted(Comparator.comparing(o - o.get("sort").toString()))

.forEach(x- System.out.print(x.get("value").toString()));

System.out.println();

java 如何用math.random打亂數(shù)組里的所有元素

public?class?Main?{

/**

?*?比如這樣的數(shù)組{"2",?"3",?"4",?"5",?"6",?"7",?"8",?"9",?"10",?"J",?"Q",?"K",?"A"

?*?}

?*?

?*?只用math.random不能導(dǎo)入別的包或者用list?不是實(shí)際打亂數(shù)組里面的元素順序,是“打印”出全部13個(gè)元素,要求隨機(jī)順序,?不按照

?*?"2",?"3",?"4",?"5",?"6",?"7",?"8",?"9",?"10",?"J",?"Q",?"K",

?*?"A"這個(gè)順序打印出來(lái)就好

?*?

?*?麻煩貼一下代碼?一段就好

?*?

?*?@param?args

?*/

public?static?void?main(String[]?args)?{

String[]?cards?=?{?"2",?"3",?"4",?"5",?"6",?"7",?"8",?"9",?"10",?"J",

"Q",?"K",?"A"?};

String[]?cards_put?=?new?String[13];

boolean?falg?=?true;

int?count?=?0;

for?(int?i?=?0;?i??cards.length;?i++)?{

if?(cards.length?-?i?-?1?==?0)?{//最后一張牌???無(wú)需隨機(jī)?

System.out.println(cards[0]);//輸出最后一張牌

}?else?{//不是最后一張牌??還需隨機(jī)選擇

int?index?=?(int)?(Math.random()?*?100)

%?(cards.length?-?i?-?1);

System.out.println(cards[index]?+?"?index=="?+?index);//輸出隨機(jī)選到的牌

for?(int?j?=?index;?j??cards.length?-?(i?+?1);?j++)?{//數(shù)組出掉的牌?放到后面??不再操作

cards[j]?=?cards[j?+?1];

}

}

}

}

}

JAVA怎么打亂一串?dāng)?shù)字的順序?不要重復(fù)的。新手。

數(shù)組去重有兩個(gè)選擇:

一、編寫判斷語(yǔ)句

如果沒(méi)有,添入數(shù)組,如果有,不添入數(shù)組。

System.out.println("How many numbers? ");

Scanner key = new Scanner(System.in);

int n = key.nextInt();

int[] all = new int[n];

int allNum=0;

boolean flag;

for (int num = 0; num n; num++) {

flag=true;

int random = (int) (Math.random() * n);

System.out.print(random + " ");

//循環(huán)判斷元素與random是否重復(fù)

for (int mark = 0; mark all.length; mark++) {

if (random == all[mark]) {

flag=false;

}

}

//如果不重復(fù)添入數(shù)組里

if(flag){

all[allNum]=random;

allNum++;

}

}

System.out.println();

//如果有一個(gè)重復(fù)的數(shù)字,數(shù)組后面就會(huì)多一個(gè)0,現(xiàn)在要去除0

int[] allTrue=Arrays.copyOf(all, allNum);

//輸入 最后去重以后的數(shù)組

for (int num = 0; num allNum; num++) {

System.out.print(allTrue[num]+" ");

}

二、使用Set集合去重

java里怎樣打亂(洗牌)一個(gè)數(shù)組

//給你個(gè)思路:給要給隨機(jī)值,該隨機(jī)值在索引范圍內(nèi),然后從索引值里面取元素,在該元素對(duì)應(yīng)

//的位置,進(jìn)行二次隨機(jī)取其他元素,然后進(jìn)行交換,就可以了!

//還有更簡(jiǎn)單的辦法,java早就想到了這一點(diǎn),在集合工具里面就提供該方法,其實(shí)他內(nèi)部也是

//這樣的思路,用隨機(jī)值進(jìn)行交換!

import?java.util.*;

public?class?ArrayListTest?{

public?static?void?main(String[]?args)?{

Integer[]?arr=new?Integer[10];

for?(int?i?=?0;?i??arr.length;?i++)?{

arr[i]=i+1;

}

System.out.println("\n原序:"+Arrays.toString(arr)+"\n");//原數(shù)組!

ListInteger?list=Arrays.asList(arr);//借用集合幫忙排序!

for(Integer?a:list)?{

Collections.shuffle(list);//隨機(jī)排序!

System.out.println("隨機(jī):"+Arrays.toString(arr));//排序后!

}

}

}

//數(shù)字或者數(shù)量,你可以隨意修改,二維數(shù)組也可以照用!

怎么用java代碼把打亂的數(shù)字1到13按從大到小排序

有很多排序算法可以選擇,譬如冒泡排序,插入排序,選擇排序等等。可以在 維基百科里搜一下"排序算法",我就正在看這個(gè)。我給你貼個(gè)選擇排序的例子。

選擇排序算法的思路:首先在未排序序列中找到最?。ù螅┰?,存放到排序序列的起始位置,然后,再?gòu)氖S辔磁判蛟刂欣^續(xù)尋找最?。ù螅┰?,然后放到已排序序列的末尾。以此類推,直到所有元素均排序完畢

/*選擇排序(降序)*/

static void selectSort(int[] arr)

{

int n = arr.length;

int max;

for (int i=0; in-1; i++)

{

max= i;

for (int j=i+1; jn; j++)

{

if (arr[max]arr[j])

{

max = j;

}

}

if (max != i)

{

swap(arr, max, i);

}

}

}

static void swap(int[] arr, int i, int j)

{

int tmp = 0;

tmp = arr[i];

arr[i] = arr[j];

arr[j] = tmp;

}

我寫了個(gè)java代碼,編譯沒(méi)有問(wèn)題,但是執(zhí)行的時(shí)候就出了一堆亂七八糟的代碼,這是怎么回事?

原因是你編譯使用的javac,把代碼編譯成版本61的class,而你的運(yùn)行環(huán)境java,是一個(gè)老版本,能執(zhí)行的上限是52版本。

解決方法有兩個(gè):

1,安裝和JDK相同版本的Java運(yùn)行時(shí)(JRE),并正確設(shè)置PATH變量。驗(yàn)證方法是:

在黑窗口里分別輸入java -version和javac -version,兩個(gè)版本要一致,或者java的版本更高。

相關(guān)命令截圖如下:

2,編譯的時(shí)候指定運(yùn)行時(shí)的版本:使用--release參數(shù)指定版本。

例如,你通過(guò) java -version查看到版本=8,那么就按如圖的命令編譯

當(dāng)前標(biāo)題:java打亂代碼,java代碼亂碼
本文地址:http://muchs.cn/article40/hcjjeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、網(wǎng)站策劃、網(wǎng)站改版標(biāo)簽優(yōu)化、自適應(yīng)網(wǎng)站、用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)