2014-10-08 26 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; 
} 
相關問題