[問題] 請問如何把字元的排列順序打亂?

看板java作者 (呵呵)時間8年前 (2017/04/21 00:12), 編輯推噓4(407)
留言11則, 5人參與, 最新討論串1/1
List<String> list = new ArrayList<>(); list.add("今天好熱喔喔喔"); list.add("會有雷陣與雨雨與雨"); list.add("外出齣齣要帶傘"); list.add("不濕濕然會淋濕"); list.add("黑貓貓凹貓貓貓貓貓關心你"); int aaa = list.size(); int bbb = 0; while(bbb<aaa){ int c= list.get(bbb).length(); for(int i =0; i<c;i++){ char z = list.get(bbb).charAt(i); String aa = ""+z; System.out.print(aa); } System.out.println(); bbb++; } 出來結果是這樣 今天好熱喔喔喔 會有雷陣與雨雨與雨 外出齣齣要帶傘 不濕濕然會淋濕 黑貓貓凹貓貓貓貓貓關心你 如果我只想要 出一個 喔今天喔熱好喔(只要一句) 這樣字元順序亂掉的結果 我需要加什麼呢? 上網爬了文 大部分都是教random 亂數產生不重複的數字 或用 Collectios.shuffle(list);這樣 可是輸出結果是 改insex而已不是改字元 麻煩前輩指教一下...感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.97.186 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1492704730.A.588.html

04/21 00:35, , 1F
作法很多,像是用迴圈把字拆開塞進list shuffle也可以
04/21 00:35, 1F

04/21 02:25, , 2F
從打亂的 index 輸出打亂的結果應該很容易吧?
04/21 02:25, 2F

04/21 02:27, , 3F
先不要想一口氣輸出, 試試一次一個字輸出
04/21 02:27, 3F

04/21 02:28, , 4F
抓到這個怎麼寫的感覺之後去查 StringBuilder
04/21 02:28, 4F

04/21 15:15, , 5F
可是我打亂的INDEX 輸出 就是整句了 只有句子上下顛倒
04/21 15:15, 5F

04/22 13:29, , 6F
Strong.split
04/22 13:29, 6F

04/22 13:55, , 7F
上面說的index不是你list的index,是你取句子中字元的index
04/22 13:55, 7F

04/22 13:55, , 8F
.charAt(i) ← 這個i
04/22 13:55, 8F

04/22 13:56, , 9F
你現在用0~c-1照順序,如果改成 0~c-1隨機排列的index去取
04/22 13:56, 9F

04/22 13:56, , 10F
不就是打亂的嗎
04/22 13:56, 10F

04/22 17:13, , 11F
以你的程式來說, 不是 0~aaa 打亂, 是 0~c 打亂
04/22 17:13, 11F
文章代碼(AID): #1O-DtQM8 (java)
文章代碼(AID): #1O-DtQM8 (java)