java - 在字符串中查找int数字

时间:2018-02-26 09:20:47

标签: java string char int digit

我正在尝试确定字符串中是否存在特定数字,如果是,则执行某些操作。

参见代码示例:

String pass = "1457";
int i = 4, j=6;
if( /* pass contains i, which is true*/)
    // ..do something
if( /* pass contains j, which is false*/)
    // ..do something

问题是我找不到这样做的方法。 我试过了 -

pass.indexOf(""+i)!=-1
pass.indexOf((char)(i+48))!=-1
pass.contains(""+i)==true

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

  

问题是我找不到这样做的方法。我试过了 -   建议?

代码示例: (Execution)

这里我们创建一个模式,然后将它与字符串匹配。

import java.util.regex.Pattern;

public class PatternNumber {
    public static void main(String args[]) {
        String pass = "1457";
        int i = 4, j = 6;

        Pattern p1 = Pattern.compile(".*[4].*"); // creating a regular expression pattern
        Pattern p2 = Pattern.compile(".*[6].*");
        if (p1.matcher(pass).matches()) // if match found
            System.out.println("contains : " + i);
        if (p2.matcher(pass).matches())
            System.out.println("contains : " + j);

    }
}

输出

enter image description here

一种方法是使用正则表达式:

正则表达式定义字符串的搜索模式。正则表达式的缩写是正则表达式。搜索模式可以是简单字符,固定字符串或包含描述模式的特殊字符的复杂表达式。正则表达式定义的模式可能匹配一次或多次,或者根本不匹配给定的字符串。

正则表达式可用于搜索,编辑和操作文本。

答案 1 :(得分:0)

您可以使用Integer.toString()将整数转换为字符串,然后在字符串

中查找其索引

请参阅下面的代码段: -

    String pass = "1457";
    int i = 4, j = 6;
    int index = pass.indexOf(Integer.toString(i));
    if (index > -1) // index of i is 1
    {
       //do something
    }
    index = pass.indexOf(Integer.toString(j));
    if(index < 0) // index of j is -1
    {
        //do something
    }

答案 2 :(得分:0)

pass.chars().anyMatch(c -> c == Integer.toString(i).charAt(0))