簡體   English   中英

從字符串中打印隨機字符

[英]Print random characters from string

我想打印三個隨機字符,從給定的字符串中選擇。 但是我不知道如何做這樣的隨機事情!

請參閱此問題中的“獎勵機會”。

這是我的代碼 ,分為2部分,額外的功勞部分在右側。

從學業上來說,尋求家庭作業問題的解決方案有點不誠實。 如果您自己進行一些思考,問題就會少一些。

正如@Zar在上面的評論中提到的那樣,詢問諸如“如何在Java中獲得隨機字符”之類的內容會更簡單,並且可以為您提供所需的答案,而無需其他人將其交給您。

在這種情況下,這取決於“隨機”的含義。

加權概率

如果應該選擇重復的字符,則只需將名字,中間名和姓氏連接成一個字符串即可:

String s = first + middle + last;

然后生成一個介於0和字符串長度之間的隨機數:

Random r = new Random();
int R = r.nextInt(s.length());

使用此隨機數來索引特定字符:

output_character = s.charAt(R);

根據需要重復多次。

均等概率

如果每個字符都具有與其他字符相同的概率,則需要將唯一字符放入列表中,並重復上述相同的過程。

import java.util.Random;

public class RandomAddingTest {
    public static void main(String[] args){
        System.out.println(returnNewPass("abcabc"));
    //display something like:[abcabcwMS][abcabcCln][abcabc?p=]...so on

    }

    public static String returnNewPass(String oldPass){
        StringBuilder sb = new StringBuilder(oldPass);
        Random ran = new Random();
        char c ;
        for (int i = 0; i<3; i++){
            c = (char)(ran.nextInt(93)+33);//ran will generate A~Z,a~z,0~9,@#$%^&*...so on
            sb.append(c);
        }
        return sb.toString();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM