【问题标题】:Hyphen search in a string using java使用java在字符串中搜索连字符
【发布时间】:2018-08-29 17:29:21
【问题描述】:

我正在尝试在字符串 "TC 1 - TC 24" 中查找连字符 - 的出现。为此,我使用了

"TC 1 - TC 24".contains(" \\-")

但是上面的表达式没有返回true。我做错了什么?

代码如下:

if("TC 1 - TC 24".contains(" \\- ") == true) {

   //print something
}

【问题讨论】:

标签: java string hyphen


【解决方案1】:

如果提供的字符串包含指定的 char 值序列,则 java 中的Contains 关键字返回 true

因此,下面的字符串返回 True,因为它包含连字符。但是,我们不能数数。出现连字符的次数。

if ("TC 1 - TC- 24".contains("-")) {
    System.out.println("It containes hyphen ");
}

我发现使用以下代码出现连字符:

public static int findCharInString(String input,char inputChar) {
    int counter=0;
    for (int i = 0; i < input.length(); i++) {
        if(input.charAt(i)==inputChar) {
            counter++;
        }
    }
    return counter;
}

【讨论】:

    【解决方案2】:

    你可以使用类似的东西:

    if ( yourString.matches("[\\p{Alnum} ]+ - [\\p{Alnum} ]+") )
    {
        System.out.println("String contains a hyphen")
    }
    

    \\p 是字母数字的 POSIX 字符类

    【讨论】:

      【解决方案3】:

      您可以使用 String 类的 indexOf 方法,因为 indexOf 从给定的字符串中搜索字符串。 如果找到,则返回该字符串的索引,否则返回-1。 因此您可以轻松使用 indexOf。 我给出了下面的代码,请通过它。

      public static void main(String[] args) {
          String hypen="12-35";
          int index = hypen.indexOf("-");
          if (index != -1) {
              System.out.println("True");
          } else {
              System.out.println("False");
          }
      }
      

      【讨论】:

        【解决方案4】:
        String str = "TC 1 - TC 24";
        
        int str_length = str.length();
        for (int i=0; i<str_length; i++) {
            char ch = str.charAt(i);
            if (ch == '-') {
                System.out.println("True");
                break;
            }
        }
        

        【讨论】:

        • 这如何回答这个问题?
        • 它将在整个字符串中搜索“-”。如果它找到一个中断并返回'true'。
        猜你喜欢
        • 1970-01-01
        • 2016-11-30
        • 2012-04-10
        • 2016-06-21
        • 2013-11-09
        • 1970-01-01
        相关资源
        最近更新 更多