2012-07-03 2 views
-5

Как проверить, содержит ли строка определенный символ. У меня есть строка вроде 1244445g или 1234G555 или 1234566R или R1234556. Я хочу проверить, имеет ли строка g/G или R/r, как это проверить?Строка содержит

Спасибо,

+7

Вы даже посмотрели на javadoc для java.lang.String? –

+2

Ожидаем ли мы преподавать основы Java? –

+1

у вас было так много отзывов .. разве вы не принимали бы один ответ? –

ответ

2

взглянуть на Java Doc и найти методы, которые класс строки предлагают как

String.contains(CharSequence c) 

JAVA DOC: Class String - Contains

Просто используйте

String s = "abcdg/Gefgh"; 
boolean b = s.contains("g/G"); 

к проверьте, включена ли указанная последовательность символов в файл sourc e строка.

EDIT:

В случае, если ваш ищет один конкретный символ (либо в верхнем регистре, либо в нижнем регистре), вы можете сделать то же самое только дважды:

c.contains("g"); 
c.contains("G"); 
+0

Я думаю, он хочет проверить капитал или не капитал g – Miquel

+0

@Miquel Я думаю, что он будет работать и для поиска символов? см. edit .. –

+0

уверен, что это тоже будет работать, я просто придирчивый из-за длины и сложности 'indexOf (char)' vs 'содержит (CharSequence)', который в конечном итоге является регулярным 'contains (String) 'поиск и немного более дорогостоящий. Вероятно, это не имеет никакого отношения к ОП. – Miquel

1

Вы можете использовать для этого метод String или вы можете использовать Regex.

line.contains("g"); 
line.contains("G"); 

Так и аналогичные для r и R.

+0

вы сглаживаете укус «g/G», а не строку «g» или «G», –

4

С подобными вещами наилучшим подходом является проверка javadoc для класса, с которым вы работаете. В этом случае это String, поэтому посмотрите here. Затем найдите функцию, которая выполняет трюк, например, в этом случае indexOf. Это будет искать первое появление char, поэтому оно либо вернется туда, где оно происходит, либо -1, если оно не найдено.

Если вы хотите найти верхний или нижний регистр, вы можете сделать это по возврату toLowerCase(), или вы можете посмотреть в регулярное выражение.

Кроме того, подумайте о том, чтобы немного поработать или даже проверить похожие вопросы в stackoverflow в следующий раз. Вы спасете время каждого, включая себя!

2
String[] strArr = {"1244445g","1234G555","1234566R","R1234556"}; 

for (String str in strArr) { 
    if (str.contains("g") || str.contains("G") || str.contains("r") || str.contains("R")) { 
     System.out.println(str + " : YES"); 
    } else { 
     System.out.println(str + " : NO"); 
    } 
} 
Смежные вопросы