0

所以我希望能够确定一个字符串是否仅由某些字符组成。

假设我想看看一个字符串是否只由a,b,c我怎么做

可以使用的字符串示例 a,aaaa,abc,cc,abc,cba如下

任何帮助都是极好的

4

4 回答 4

2
public boolean containsOnly(String str, String certain){
    return str.matches("[" + certain + "]*");
}

这将始终匹配一个空字符串,如果您想更改它,只需将 更改*+

这使用正则表达式并且非常简单。但是,逻辑并没有完全阐明。基本上,它确保字符串匹配“确定”中字符的任何组合。

containsOnly("aaaa", "abc") -> True
containsOnly("abca", "abc") -> True
containsOnle("aaaz", "abc") -> False
于 2013-11-05T23:24:27.297 回答
0

这将告诉您是否有冒犯的角色。

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");
    }
}
于 2013-11-06T00:01:44.770 回答
0

尝试这个:

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

当然,您可以只使用正则表达式,但这没那么有趣。

于 2013-11-05T23:16:50.507 回答