[英](Java ) problems with myString.charAt(i) > “1” or myString.charAt(i) < “A”
我有一個應該具有特征的汽車對象。 該特性應該具有要求:以兩個大寫字母開頭,后跟1-9之間的數字,然后是0-9之間的4個數字。
public void writeCharacteristic(){
System.out.println("write down the characteristic for the car.");
String characteristic = kb.nextLine();
progress = false;
if (characteristic.length() != 7){
System.out.println("The string is not 7 letter/numbers long");
progress = false;
}
for(int i = 0; i < 2; ++i){
if (characteristic.charAt(i) < "A" || characteristic.charAt(i) > "Z"){
System.out.println(" character number " + i + " is invalid");
progress = false;
}
}
if (characteristic.charAt(3) < "1" || characteristic.charAt(3) > "9")
progress = false;
for (int j = 3; j < 7; ++j){
if (characteristic.charAt(j) < 0 || characteristic.charAt(j) > 9)
progress =false;
}
if (progress == false){
System.out.println("characteristic will have the value null.");
characteristic = null;
}
if (progress == true)
car.setCharacteristic(characteristic);
}
我在“ if(characteristic.charAt(i)<“ A” ||特征.charAt(i)>“ Z”){“
編譯器說“對於參數類型char,String,未定義運算符<”
感謝您的任何幫助。
在Java中,您可以將字符( char
)與字符進行比較,但不能將字符與String
進行比較。 charAt
返回一個字符,因此您必須將其結果與一個字符進行比較。
這些是String
"A" "Z" "1" "9"
這些是角色
'A' 'Z' '1' '9'
您可以將字符與整數( int
)進行比較,但結果可能不是您想要的。 因此,在下面的代碼中:
for (int j = 3; j < 7; ++j){
if (characteristic.charAt(j) < 0 || characteristic.charAt(j) > 9)
0
和9
應該更改為'0'
和'9'
。
注意:您的代碼中還有另一個不相關的邏輯錯誤:
String characteristic = kb.nextLine();
progress = false;
這里不應該將progress
設置為true
嗎?
我當然會在此頁面上查看其他答案。 字符比較。 但是,我也許會建議使用另一種方法:
以兩個大寫字母開頭,后跟1-9之間的數字,然后是0-9之間的4個數字
並研究正則表達式 。 就像是:
[A-Z]{2}[1-9][0-9]{4}
將滿足上述要求。
字符使用單引號,字符串使用雙引號。
characteristic.charAt(3) < '1'
在Java中有單引號和雙引號的含義
對於您的情況,最適合的是正則表達式
用雙引號替換雙引號。
在將數字與char進行比較時,即使編譯器沒有抱怨,也必須在數字前后加上單引號。
像這樣比較
characteristic.charAt(3) < '1'
首先,您可以使用regexp實現此目標: [AZ]{2}[1-9][0-9]{4}
(閱讀模式文章以了解如何使用它)。
如果您想一開始就做-使用單引號而不是帶字符的雙引號。 例如"a"
-> 'a'
。
如果要為char
賦值,請使用單引號。 如果是String
使用雙引號
char myChar='a';
String myString="a";
所以
characteristic.charAt(3) < "1" should change as characteristic.charAt(3) < '1'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.