Java:Numb1和Numb2,并检查Numb1是否具有前缀Numb2
如果给定的前缀是数字的真前缀,则程序应返回真。但是我的程序返回false。 e、 g System.out.println(hasPrefix(12345,1));//真的 System.out.println(hasPrefix(12345123));//真的 System.out.println(hasPrefix(12345,34));//假的 System.out.println(hasPrefix(12345,0));//假的Java:Numb1和Numb2,并检查Numb1是否具有前缀Numb2,java,Java,如果给定的前缀是数字的真前缀,则程序应返回真。但是我的程序返回false。 e、 g System.out.println(hasPrefix(12345,1));//真的 System.out.println(hasPrefix(12345123));//真的 System.out.println(hasPrefix(12345,34));//假的 System.out.println(hasPrefix(12345,0));//假的 我不知道问题出在哪里,非常感谢您的帮助。将它们都转换为字符
我不知道问题出在哪里,非常感谢您的帮助。将它们都转换为字符串,然后使用startsWith方法检查“number”是否以“prefix”开头
如前所述,这个问题可以使用字符串概念来解决。下文也将给出
public static boolean hasPrefix(int number, int prefix){
String numberAsString = Integer.toString(number);
String prefixAsString = Integer.toString(prefix);
if(numberAsString.startsWith(prefixAsString)){
return true;
} else{
return false;
}
}
将在同一行中工作。是否尝试调试代码?在递归调用hasPrefix(number,prefix)之前,您缺少“return”关键字,因此它将始终在“return false;”行的下方继续。
public static boolean hasPrefix(int number, int prefix){
String numberAsString = Integer.toString(number);
String prefixAsString = Integer.toString(prefix);
if(numberAsString.startsWith(prefixAsString)){
return true;
} else{
return false;
}
}
public static boolean hasPrefix(int number, int prefix) {
return String.valueOf(number).startsWith(String.valueOf(prefix)) ? true :false;
}