我想創建一個ISBN-數量根據該方案:Java用字符串生成一個隨機的ISBN號碼?
L1L2 −B1B2B3 −V1V2 −C
標題數B1B2B3必須≥100而L1L2和V1V2必須大於0校驗位0≤C≤9應該這樣來計算:
C = L1#2 + L2 + B1#2 + B2 + B3#2 + V1 + V2#2 mod 10
與
i#2 = i∗2 (or) i#2 = i∗2−9 (if i∗2 ≥ 10)
現在,我需要在此方法中使用的字符串來做到這一點的位置:
public static String makeISBN()
{
// Do NOT change the declaration of the following variables!
String L1L2;
String B1B2B3;
String V1V2;
String C;
// generate randoom ISBN here
// Do not change the following line
return L1L2+ "-" + B1B2B3+ "-" + V1V2+ "-" + C;
}
在此方法中,數字L1L2,B1B2B3,V1V2和C必須隨機生成或計算(在C的情況下)。它們應該分配給預定義的字符串變量,重要的是數字L1L2和V1V2保存爲兩位數的字符串。例如,數字3應該保存爲字符串「03」。總共產生三個隨機數字,每個數據塊一個。
我真的很難理解這一點,它說,我可能會使用DecimalFormat thingy,但是..我不知道該怎麼做,有沒有人知道這應該如何解決?
包括hashtag計算操作在這裏這個方法:
// multiplies i with 2 and subtracts 9 if result is >= 10
public static int hashOp(int i)
{
// Do NOT change this method!
int doubled = 2 * i;
if (doubled >= 10) {
doubled = doubled - 9;
}
return doubled;
}
,並在主字符串的方法,我只是要調用makeISBN()方法,並打印在控制檯一堆倍。 。 謝謝你的幫助!
編輯: 問題是根據我的問題中所述的定義生成整個ISBN-Number ..我可能沒有足夠精確 - 這是字符串混淆了我,因爲現在我從來沒有使用過字符串以這種方式 - 我將如何將隨機數字再次變成字符串? - 這個練習真的讓我困惑......
我試着用Math.random()做一些事情,但我只會得到0以下的數字,所以我肯定會以這種錯誤的方式去做 - 正確的方法是什麼?
那麼你的問題是什麼?用前導零創建一個數字串?創建一個隨機數字?計算校驗碼?到目前爲止你做了什麼? – SubOptimal
你的問題在哪裏?這似乎是一個功課,你有什麼嘗試? DecimalFormat「thingy」肯定有一個javadoc,你有沒有讀過它? – dfogni
有人說,我可能會使用DecimalFormat,但不必......而且這是一個練習 - 問題是根據我的問題中所述的定義生成整個ISBN-Number ..我可能沒有足夠精確 - 這是混淆了我的字符串,因爲從現在起我從來沒有以這種方式處理字符串 - 我怎樣才能將隨機數字再次變成字符串? - 這個練習讓我很困惑......並且如果我使用math.random,我只會得到低於0的數字,所以我肯定會以這種錯誤的方式去做 - 正確的方法是什麼? – DisasterCoder