2013-03-23 50 views
1

該程序應該循環輸入一個字符如果沒有寫入,程序將不會編譯,它不接受字符tegn = '' ;.我怎樣才能創建一個循環,其中沒有寫入字符的條件si?使用空字符作爲循環條件,程序結束時,它應該循環

import static javax.swing.JOptionPane.*; 
     char tegn = ''; 
     do { 
     tegn = showInputDialog("Input a char.").charAt(0); 
     } while (tegn == ''); 

更新: 我解決了我的代碼與來自維沙爾K的代碼的想法,使用字符串來確定用戶是否在沒有什麼寫道:

String tegn = ""; 
do { tegn = showInputDialog("Input a char."); 
} while (tegn.equals("")); 

char chartegn = tegn.charAt(0); 
+0

後1環,它會明顯地結束了吧?除非你繼續提供'空間'作爲輸入。 – SudoRahul 2013-03-23 12:22:15

+0

使用'while(tegn =='')'而不是 – 2013-03-23 12:23:32

+0

ah derp,是的,它的確如此,所以它可以像書面一樣工作,但如果我只是按下回車鍵,導致如果我在char tegn =''中寫入;它根本不會編譯 – Rune 2013-03-23 12:24:47

回答

1

您可以嘗試以下操作:

import static javax.swing.JOptionPane.*; 
    String str = ""; 
    char tegn=' '; 
    do { 
    str = showInputDialog("Input a char."); 
    if (str != null && !"".equalsIgnoreCase(str.trim())) 
    { 
     tegn = str.charAt(0); 
    } 
    }while(str!=null && !"".equalsIgnoreCase(str.trim()) 
+0

我會嘗試這樣的事情,1時刻 – Rune 2013-03-23 13:10:39

+0

好吧,所以我做到了這一點,它的工作,雖然我並不完全理解你的代碼,我試着用完整的字符串和循環完成後(用戶輸入字符的東西),我將字符串中的第一個符號轉換爲將要使用的字符,之後loop:\t \t String tegn =「」; \t \t do { \t \t tegn = showInputDialog(「Skriv inn et tegn。「); \t}而(tegn.equals(」「)); \t焦炭chartegn = tegn.charAt(0);? – Rune 2013-03-23 13:26:31

+0

@Rune你不能在這個代碼得到 – 2013-03-23 13:27:44

0

的問題是,如果您只需在提示輸入字符時發送字符而不是空格('')時按Enter鍵。

我建議檢查是否輸入小於中心ASCII值(空間和每一個符號,和字符開始在DEC 32)

即你可以將你的char值轉換成一個整數值。 (int ascii =(int)character)

並用它來驗證您的輸入。

http://www.asciitable.com/

+0

試圖轉換爲int thingie,到目前爲止我得到了:char tegn; \t \t do { \t \t tegn = showInputDialog(「Write a char。」)。charAt(0); \t \t int ascii = Integer.parseInt(tegn); \t} while(ascii <33); – Rune 2013-03-23 12:55:39

+0

你還有同樣的問題嗎? – JohnStrong 2013-03-23 13:05:58

+0

是的,我很難得到它沒有得到錯誤的編譯使用這種方法,嘗試不同的方式與字符串/字符atm – Rune 2013-03-23 13:10:11