我正在尝试确定字符串中是否存在特定数字,如果是,则执行某些操作。
参见代码示例:
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
有什么建议吗?
答案 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);
}
}
输出
一种方法是使用正则表达式:
正则表达式定义字符串的搜索模式。正则表达式的缩写是正则表达式。搜索模式可以是简单字符,固定字符串或包含描述模式的特殊字符的复杂表达式。正则表达式定义的模式可能匹配一次或多次,或者根本不匹配给定的字符串。
正则表达式可用于搜索,编辑和操作文本。
答案 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))