java隨機事宜分發器示例。本站提示廣大學習愛好者:(java隨機事宜分發器示例)文章只能為提供參考,不一定能成為您想要的結果。以下是java隨機事宜分發器示例正文
以下需求:
20%的幾率去履行辦法A,
1%的幾率去履行辦法B,
29%的幾率去履行辦法C,
50%的幾率去履行辦法D
假如用if隨機數之類的語句去斷定的話,能夠會寫的很亂,我寫了一個隨機分發器,可以標准該操作。應用該分發器後的代碼以下:
//創立一個分發器
RandomDispatcher randomDispatcher = new RandomDispatcher();
//設置每種事宜的幾率,留意,幾率之和紛歧定是100哦
randomDispatcher.put(20, 1);
randomDispatcher.put(1, 2);
randomDispatcher.put(29, 3);
randomDispatcher.put(50, 4);
//隨機
int retIndex = randomDispatcher.random();
//依據隨機成果去履行分歧的辦法
switch (retIndex) {
case 1:
System.out.println("do method A");
break;
case 2:
System.out.println("do method B");
break;
case 3:
System.out.println("do method C");
break;
case 4:
System.out.println("do method D");
break;
default:
break;
}
# SORTKEY: Jones, Adrian
...
技能是:應用awk辨認段落距離,在每一個地址內臨時應用一個未用過的字符代替分行。
sort看到的行就會釀成如許:
# SORTKEY: Schlo, Hans Jurgen^ZHans Jurgen Schlo^ZUnter den Linden 78^Z...
cat my-friends | 讀取地址文件
awk -v RS=" " '{ gsub("\n", "^Z"); print }' | 轉換地址為單行
sort -f | 排序地址數據,疏忽年夜小寫
awk -v ORS="\n\n" '{ gsub("^Z", "\n"); print }' | 恢復行構造
grep -v '# SORTKEY' 刪除標志行
1. 函數gsub()為全局性調換(global substitution),相似sed下的s/x/y/g構造。
2. RS變量時輸出數據的記載分隔器(Record Separator)。
平日輸出數據以換行離隔,使每行成為單個記載。
RS=" "是一個特別用法,指的是記載以空行離隔。
3. ORS是輸入記載分隔器。
注:'{ action }'是對每一個字段的操作,而RS,ORS都是對記載的設定。
4.1.5 sort的穩固性
sort其實不穩固。
4.2 刪除反復
sort -u是根據婚配的鍵值停止清除操作,而非婚配的記載。
uniq有3個好用選項:
-c在每一個輸入行之前加上該行反復的次數。
-d則用於僅顯示反復的行。
-u僅顯示未反復的行。
4.3 從新格局化段落
fwt -w 30
4.4 盤算行數、字數和字符數
wc的默許輸入是一行申報,包含行數、字數和字節數。
可用選項:-c(字節數)、-l(行數)、-w(字數)。
$ echo Testing one two three | wc -c
1 4 22
$ wc /etc/passwd /etc/group
4.6 提取開首或開頭數行
顯示文件列表中每個的前n筆記錄:
head -n n [file(s)]
head -n [file(s)]
awk 'FNR <= n' [file(s)]
sed -e nq [file(s)]
sed nq [file(s)]
不雅察赓續增加的體系信息日記,Ctrl-C停滯tail。
$ tail -n 25 -f /var/log/messages