00 と 99 で始まる番号を拒否する関数を開発します。
public Boolean valideCode(EditText code_postal){
String number = code_postal.getText().toString();
if (number.charAt(0)==00){
}
return false;
}
この機能を適切に実装するにはどうすればよいですか。
使用.startsWith()
:
if (number.startsWith("00") || number.startsWith("99")) ...
.charAt()
文字列ではなく、単一の文字を返します。
(純粋な好奇心から、なぜこれなのですか?code_postal.getText().toString();
の名前から、既に... Bah.getText()
を返していることがわかります。)String
編集したがって、オンデマンドで、最初に int に変換してチェックする別のバージョン...
final int begin = Integer.parseInt(number.subString(0, 2));
if (begin % 99 == 0) // can only be true if number is 0 or 99
// etc
if ステートメントは常に false を返します。
1 つの解決策:
if (number.trim().startsWith("00") || number.trim().startsWith("99")){
System.out.println("not valid");
}
String
クラスindexOf()メソッドを使用できます。
if (number.indexOf("00")==0 || number.indexOf("99")==0)
編集済み: -質問の件名「最初の 2 桁の数字が 00 && 99 の間にあることを確認してください」から理解したように、これが必要です。
public static boolean isValid(String name) {
boolean isValid = true;
if(name.length()>2){
name = name.substring(0, 2);
}
try {
int number = Integer.parseInt(name);
if(number>-1 || number<100){
isValid = false;
}
}
catch(Exception e){
isValid = false;
}
return isValid;
}
あなたの質問が「00と99の間にある」という特別な見出しを理解している場合、これが必要です
try
{
String s = "45Abc";
Integer i = Integer.parseInt(s.substring(0,2));
if (i>00 && i<99)
System.out.println("True");
}catch (NumberFormatException e)
{
// TODO Auto-generated catch block
System.out.println("First two characters are not numbers");
}
以下のようなロジックを使用してください
private boolean isValid(String str) {
if (str == null)
return false;
String tempStr = null;
try {
if (str.length() > 2) {
tempStr = str.substring(0, 2);
} else {
tempStr = str;
}
int number = Integer.parseInt(tempStr);
if (number >= 0 && number <= 99) {
return false; //in between 0 to 99
} else {
return true;
}
} catch (NumberFormatException e) {
}
return false;
}
入力した数字が「00」か「99」かを確認するには
public Boolean valideCode(EditText code_postal){
String number = code_postal.getText().toString();
if(number.startsWith("00") || number.startsWith("99")){
return true;
}
return false;
}
入力した数字が「00」~「99」かどうかを確認するには
public Boolean valideCode(EditText code_postal){
String number = code_postal.getText().toString();
String firstTwoDigits = number.substring(0,2);
if (Integer.valueOf(firstTwoDigits )>=0 && Integer.valueOf(firstTwoDigits )<=99){
return true;
}
return false;
}
注:質問のタイトルと説明が異なります。したがって、2つの答え。