程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java隨機事宜分發器示例

java隨機事宜分發器示例

編輯:關於JAVA

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;
}

>4.1.3 文本塊的排序
有時須要對多行記載組合而成的數據排序。以地址清單為例:
$ cat my-friends
# SORTKEY: Schlo, Hans Jurgen
Hans Jurgen Schlo
Unter den Linden 78
D-10117 Berlin
Germany

# 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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved