撰寫一個方法,根據字符 (char) [輸入] 是否是要編碼的有效字符,回傳 true 或 false。即如果輸入[輸入字符]是'a'-'z'或'A'-'Z',則回傳true,否則回傳false。
為什么我的回答錯了???
公共靜態布爾 isValidChar_Q1(char chr) {
if(chr == 'a'-'z')
{
return true;
}
if(chr == 'A'-'Z')
{
return true;
}
return false;
}
uj5u.com熱心網友回復:
在您的比較中,您試圖將單個字符與一個范圍進行比較,這是您在 Java 中無法撰寫的。您的這種語法看起來更接近于正則運算式 ( [a-zA-Z]) 而不是正確的 Java 比較。
如果要檢查變數的值是否在范圍內,則需要將其與其邊界進行比較:大于或等于左邊緣,小于或等于右邊緣。
public static boolean isValidChar_Q1(char chr) {
return (chr >= 'a' && chr <= 'z') || (chr >= 'A' && chr <= 'Z');
}
uj5u.com熱心網友回復:
語法if(chr == 'a'-'z')不正確。'a'and'z'都是字符文字,但在 Java 中,字符是 16 位整數型別。所以'a'-'z'是很長的路要寫-25。我會簡化邏輯和測驗。就像是
public static boolean isValidChar_Q1(char chr) {
char t = Character.toLowerCase(chr);
return t >= 'a' && t <= 'z';
}
uj5u.com熱心網友回復:
您撰寫'a'-'z'的它將轉換為 ASCII 代碼減法,結果將是-25,而對于您的'A'-'Z'陳述句,結果將是 (嗯,也是) -25。
你應該寫類似
if( (chr <= 'z' && chr >= 'a') || (chr <= 'Z' && chr >= 'A') )
return true;
return false;
永遠記住,計算機使用ASCII 代碼,而不是“字符”,計算機將檢查給定字符的有效代碼(始終為正,-25無效),在我們的例子中,ASCII 代碼chr應該更小-or-equal to z,依此類推(參見上面的 if 陳述句)。
如果您熟悉多載return陳述句,您還可以簡化您的函式(使其更具可讀性):
return (chr >= 'a' && chr <= 'z') || (chr >= 'A' && chr <= 'Z')
uj5u.com熱心網友回復:
使用正則運算式的解決方案:
import java.util.regex. * ;
boolean isMatch = Pattern.matches("[a-zA-Z]", "S");
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/474894.html
上一篇:javax.persistence.EntityNotFoundException:找不到ID為10000001的kg.library.spring.library_spring.entity.Aut
下一篇:java.util.LinkedHashMap不能轉換為類com.profile.model.Profile-SpringBoot
