我试图找出如何在字符串中搜索某个数字,然后如果该数字存在于字符串中,请执行以下操作:
String str = "String4";
int myInt = 0;
public static void checkString(String str) // FIX ME
{
if(str.indexOf('3') == 0)
{
myInt = 3;
}
else if(str.indexOf('4') == 0)
{
myInt = 4;
}
else if(str.indexOf('5') == 0)
{
myInt = 5;
}
}
尽管它永远不会返回true,但是还有另一种搜索字符串的方法。有很多额外的代码,但是此方法是导致问题的唯一原因。因此,我正在拔头发,非常感谢您的帮助!
答案 0 :(得分:1)
例如
if(str.indexOf('3') == 0)
每3在0位置进行搜索都是不合适的,因为数字可以出现在字符串的任何地方。
改为使用
str.indexOf('3')!=-1
并检索返回值为indexOf的位置
答案 1 :(得分:1)
使用contains
方法检查子字符串是否在给定的字符串中。
public static void checkString(String str)
{
if(str.contains("3"))
myInt = 3;
else if(str.contains("4"))
myInt = 4;
else if(str.contains("5"))
myInt = 5;
}
答案 2 :(得分:1)
让我们先从您对方法的解释开始,直到我们得到答案。
从您的字符串String str = "String4"
开始,我假设您将其传递给checkString()
。
用于字符串的indexOf()
函数在字符串中搜索子字符串(在您的情况下为字符)并返回其位置(从0开始索引)。例如,如果调用str.indexOf("t")
,它将返回1因为字符t
在位置1。因此,在代码中检查数字3、4和5是否驻留在字符串索引0(第一个字符)中。
如果要为此功能使用indexOf()
,则可以首先检查数字是否在字符串中。如果您要搜索的字符不在字符串中,则IndexOf()
返回-1
,因此您可以使用以下代码:
if (str.indexOf("3") != -1){
//do your stuff
}
与4和5相同。