我还在研究Java项目,想问一下有人可以帮助我吗?
我问我是否可以使用“startsWith”检查带有多个Letter的字符串?
像:
if (string Alpha.startsWith("a"||"A"||"b"||"B"||"c"||"C"||"d"||"D")){
System.out.println("Wrong!");
System.out.println("\n");
}
else{
System.out.println("Wrong Key!");
任何解决方案?
答案 0 :(得分:5)
char first = Character.toLowerCase(str.charAt(0));
if (first >= 'a' && first <= 'd')
{
// etc.
}
如果你想避免可能的locale issues,你可以给出两个范围,一个用于小写,一个用于大写:
char first = str.charAt(0);
if ((first >= 'a' && first <= 'd')
|| (first >= 'A' && first <= 'D'))
{
// etc.
}
答案 1 :(得分:3)
我会把它放在新方法中:
private boolean myStartsWith(String... args) {
for(String str : args) {
if(args.startsWith(str) {
return true;
}
}
return false;
}
然后使用它:
str.myStartsWith(new String[]{"a","b","c"});
答案 2 :(得分:2)
正如其他人所提到的,显然应该使用正则表达式:
java.util.regex.Pattern p = java.util.regex.Pattern.compile("^[a-cA-C]");
java.util.regex.Matcher m = p.matcher(alpha); //
if (m.matches()) {
...
答案 3 :(得分:2)
最好的方法
str.matches("^[A-Da-d].+");
答案 4 :(得分:2)
试试这段代码:
String str = "ABCDEF";
if(str.matches("(a|A|b|B|c|C|d|D).*")) {
...
};
答案 5 :(得分:1)
做这样的事情:
if (Alpha.startsWith("a") || Alpha.startsWith("A") || // and so on
答案 6 :(得分:0)
private static boolean startsWith(String value, String[] chars){
for(String check:chars){
if(value.indexOf(check) == 0 || value.indexOf(check.toUpperCase()) == 0){
return true;
}
}
return false;
}
<强>用法强>
public static void main(String[] args) {
String val1 = "A string";
String val2 = "a string";
String val3 = "x string";
String[] chars = {"a","b","c","d"};
System.out.println(startsWith(val1,chars));
System.out.println(startsWith(val2,chars));
System.out.println(startsWith(val3,chars));
}
答案 7 :(得分:0)
您可以这样做:
String str = "Alpha";
String[] tar = "aAbBcCdD".split("");
for(String s: tar) {
if(str.startsWith(s)){
...your own logic
}
}