определить, содержит ли строка только определенные символы

Вопрос: Поэтому я хочу, чтобы определить, содержит ли строка только определенные символы. Скажем, я хочу посмотреть, состоит ли строка из только a,b,c как бы я это сделал Пример строк, которые будут работать: a,aaaa,abc,cc,abc,cba ect любая помощь была бы потрясающей Ответ №1 Apache StringUtils для спасения - http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#containsOnly(java.lang.CharSequence, java.lang.String) Ответ №2public boolean containsOnly(String str, String certain){

Вопрос:

Поэтому я хочу, чтобы определить, содержит ли строка только определенные символы.

Скажем, я хочу посмотреть, состоит ли строка из только a,b,c как бы я это сделал

Пример строк, которые будут работать: a,aaaa,abc,cc,abc,cba ect

любая помощь была бы потрясающей

Ответ №1

Apache StringUtils для спасения – http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#containsOnly(java.lang.CharSequence, java.lang.String)

Ответ №2public boolean containsOnly(String str, String certain){ return str.matches(«[» + certain + «]*»); }

Это всегда будет содержать пустую строку, если вы хотите ее изменить, просто измените значение * на +.

Это использует регулярные выражения и довольно просто. Однако логика не раскрывается полностью. В принципе, он гарантирует, что строка соответствует любой комбинации символов в “определенных”.

containsOnly(«aaaa», «abc») -> True containsOnly(«abca», «abc») -> True containsOnle(«aaaz», «abc») -> False Ответ №3

Попробуй это:

boolean onlyCertainCharacters(String str, String certainCharacters) { for(int i=0;i<str.length();i++) //Check each character in the String { if(certainCharacters.indexOf(str.substr(i,1))==-1) //Return false if the character isn’t in the list of allowed characters { return false; } } return true; //If we haven’t returned yet, then all characters must match }

Применение:

onlyCertainCharacters(«aaaa,»abc») //==true onlyCertainCharacters(«aaad,»abc») //==false

Конечно, вы можете просто использовать регулярное выражение, но это не так весело.

Ответ №4

Это скажет вам, есть ли у вас оскорбительный характер.

import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexMatch { private static void match(String REGEX, String INPUT) { Pattern p = Pattern.compile(REGEX); Matcher m = p.matcher(INPUT); int count = 0; while (m.find()) { count++; System.out.println(«nMatch number: » + count); System.out.println(«start() : » + m.start()); System.out.println(«end() : » + m.end()); System.out.println(«group() : » + m.group()); } } public static void main(String[] args) { match(«[^abc]», «zbc»); } }

Оцените статью
Добавить комментарий