我正在上課,我們最近開始學習 Java。我有一個任務是使用 switch-cases 和布林值來識別 pangrams。該任務指出:
創建一個字串“句子”,其值為“從編織黃麻袋中快速挑選出 60 個拉鏈”。
創建 26 個名為 a 到 z 的布爾變數
一種。布爾 a, b, ... y, z;
灣。a, b, ... y, z = 真;
創建一個回圈遍歷句子的每個字母
一種。小心你在回圈中使用的迭代器,因為字母“i”已經被占用了!
使用 switch-cases 和您創建的布林值,識別字母并將相應的布林值設定為 true。
一旦句子被完全處理,評估每個布林值:
一種。如果所有這些都是真的,請列印訊息“句子“是一個 pangram!”
灣。如果其中任何一個是錯誤的,請列印訊息“句子“不是一個 pangram!”
我不確定是否只是讓我絆倒的任務的措辭,但我不確定如何執行它。這就是我目前所擁有的:
String sentence = "Sixty zippers were quickly picked from the woven jute bag.";
Boolean a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z;
a = b = c = d = e = f = g = h = i = j = k = l = m = n = o = p = q = r = s = t = u = v = x = y = z = true;
for (int letter = sentence.length() - 1; letter <= 0; letter ) {
int character = sentence.charAt(letter);
switch(character) {
case a:
case b:
case c:
當我這樣做時,顯然它不會轉換,那么我將如何評估每個字符?
uj5u.com熱心網友回復:
在不完整的解決方案中,您有很多錯誤。這看起來像是一項學校作業,所以我不是在撰寫代碼,但這里有一些你應該解決的問題。
- 不要將布爾標志初始化為真。當您遇到該角色時,將它們設定為 true。
- 您可能希望將標志的型別更改為原始布林值和/或您希望將它們初始化為 false。
- 你已經定義
character
為一個,int
但它真的應該是一個char
int
請注意,由于隱式轉換,使用將起作用,但它可能會令人困惑。
- 案例名稱應該用單引號表示它們是字符而不是您在開頭定義的變數。
- 在每種情況下,設定適當的標志和中斷以防止分配失敗
- for回圈設定錯誤。您從最后開始并遞增,因此它將立即停止。
- 從頭開始(即初始化
letter
為0) - 更改條件以覆寫字串的長度
- 增量器很好。
- 從頭開始(即初始化
uj5u.com熱心網友回復:
正如評論中所指出的,for 回圈是不正確的。按順序遍歷字符:
for (int letter = 0; letter < sentence.length(); letter ) {
從字串中獲取字符時,將其轉換為小寫(否則,您需要單獨case
為'a'
和'A'
):
char character = Character.toLowerCase(sentence.charAt(letter));
切換陳述句:
switch(character) {
case 'a':
a = false;
break; // needed to avoid fall-through to case 'b'
case 'b':
b = false;
break;
...
現在您可以測驗是否所有變數都設定為 false:
boolean isPangram = !a && !b && ... && !z;
false
如果變數在開頭和true
回圈中設定為 ,則代碼會更簡單、更清晰。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/464773.html
上一篇:如何更改csv列中的資料型別