Поиск дефиса в строке с использованием Java - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь найти дефис - в строке "TC 1 - TC 24". Для этого я использовал

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

Но вышеприведенное выражение не возвращает true. Что я делаю не так?

Код выглядит так:

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

   //print something
}

Ответы [ 4 ]

0 голосов
/ 30 августа 2018

Вы можете использовать метод indexOf класса String, так как 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");
    }
}
0 голосов
/ 29 августа 2018

Вы можете использовать что-то вроде:

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

\\ p - это класс символов POSIX для буквенно-цифровых символов

0 голосов
/ 29 августа 2018

Contains ключевое слово в java возвращает 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;
}
0 голосов
/ 29 августа 2018
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;
    }
}
...