如何在字符串Java中查找特定数字

时间:2019-02-25 20:16:46

标签: java

我试图找出如何在字符串中搜索某个数字,然后如果该数字存在于字符串中,请执行以下操作:

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,但是还有另一种搜索字符串的方法。有很多额外的代码,但是此方法是导致问题的唯一原因。因此,我正在拔头发,非常感谢您的帮助!

3 个答案:

答案 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相同。