2014-10-08 28 views
1
for (int i = 0; i < d.getFornavn().length(); i++) { 
    char c = d.getFornavn().charAt(i); 
    if ((c > 'a' && c < 'z') || (c > 'A' && c < 'Z') || (c == ' ' || c == '-')) { 
     flag = true; 
    } 
} 

嗨!我试图做一个函数来检查一个字符串是否只包含某些字符(只有az,AZ,挪威字母,空格和连字符,但我遇到了一些麻烦我尝试做你在这里看到的东西,但它不工作,我希望它会(我还没有实现挪威的信件,因为我对如何做到这一点不知情)。开始觉得必须有检查这种简单的方式,但我还没有听说过什么如何只接受一个字符串与Java中的某些字符

任何想法

+0

你有什么就有什么基本上是正确的,也许只是需要一点点调试。你有什么“麻烦”的部分?你可以提供一个显示问题的[MCVE](http://stackoverflow.com/help/mcve)吗? – markspace 2014-10-08 16:35:59

回答

0

您使用会给结果根据您的字符串或只有一个字符最后一个字符的方法。由于它是为每个字符设置标志。要拒绝所有无效的字符串,你可以简单地

bool flag = true; 
for (int i = 0; i < d.getFornavn().length(); i++) { 
    char c = d.getFornavn().charAt(i); 
    if ((!c > 'a' && c < 'z') && !(c > 'A' && c < 'Z') && (c != ' ' || c != '-')) { 
     flag = false; 
     break; 
    } 
} 

只接受那些字符串这flag true

3

你可以使用正则表达式:?

flag = d.getFornavn().matches("[a-zA-zåæøÅÆØ -]+"); 
0

你可以在搜索字符串

public static void main(String[] args) { 
    String s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ - åæøÅÆØ"; 
    String yourstr = "Ø123456"; 
    System.out.println(myfunc(s, yourstr)); 
} 
private static boolean myfunc(String s, String yourstr) { 
    for (int i = 0; i < yourstr.length(); i++) { 
     char c = yourstr.charAt(i); 
     if (s.indexOf(c) > 0) { 
      return true; 
     } 
    } 
    return false; 
} 
相关问题