【问题标题】:java - find an int digit in a stringjava - 在字符串中找到一个int数字
【发布时间】:2018-08-05 16:54:46
【问题描述】:

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

查看代码示例:

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

有什么建议吗?

【问题讨论】:

  • pass.contains(""+i) 工作没有问题(虽然不需要==true,该方法已经返回一个布尔值)。事实上,您列出的所有 3 项尝试都完全按照您的意愿进行。
  • 也是如此:pass.indexOf((char)(i+48))!=-1
  • 所有方法都应该有效。你的 if 语句或你在里面做的任何事情一定有其他问题。

标签: java string char int digit


【解决方案1】:

您可以使用 Integer.toString() 将整数转换为字符串,然后在字符串中找到它的索引

参考下面的代码sn-p:-

    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】:

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

    【讨论】:

      【解决方案3】:

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

      代码示例: (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);
      
          }
      }
      

      输出:

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

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

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

      【讨论】:

        猜你喜欢
        • 2012-11-25
        • 1970-01-01
        • 2012-02-02
        • 2019-02-15
        • 2012-08-30
        • 2014-01-25
        • 2012-05-03
        • 2021-11-08
        • 1970-01-01
        相关资源
        最近更新 更多