Java では、文字列にフランス語の文字が含まれているかどうかを確認するにはどうすればよいでしょうか?
2935 次
4 に答える
4
public static boolean containsFrench(String s) {
Pattern frenchPattern = Pattern.compile("(?i)[çèéêîôœû]");
return frenchPattern.matcher(s).find();
}
于 2012-12-19T23:50:58.860 に答える
2
「フランス語の文字」の概念は十分に定義されていないため、これを解決する最も簡単な方法は、修飾すると思われるすべての文字を含む配列を作成し、文字列内の各文字をテストして、配列内にあるかどうかを確認することです。 :
(これは、Javaコースまたはチュートリアルを行った人なら誰でも5分で記述できるはずなので、コードを書くつもりはありません。5分で記述できない場合は、次のようにする必要があります。自分で練習してください。)
これを行うには、よりエレガントで効率的な方法があります。しかし、初心者にはシンプルが良いです。
于 2012-12-19T23:44:27.410 に答える
1
簡単な解決策 - リストが網羅的であることを確認したい場合があります (たとえば、アクセント付きの大きな大文字や、あまり一般的ではない ÿ は含まれていません) が、概念は機能するはずです。
public static void main(String[] args) {
Set<Character> frenchLetters = new HashSet<> (Arrays.asList('â', 'à', 'ç', 'é', 'ê', 'ë', 'è', 'ï', 'î', 'ô', 'û', 'ù'));
String s = "abcdà";
for (char c : s.toCharArray()) {
if (frenchLetters.contains(c)) {
System.out.println("Found a French letter: " + c);
}
}
}
于 2012-12-19T23:50:00.737 に答える
0
試す:
public boolean hasFrenchCharacter(String input) {
if (input.contains("ù") == true) return true;
if (input.contains("û") == true) return true;
if (input.contains("ü") == true) return true;
if (input.contains("ÿ") == true) return true;
if (input.contains("à") == true) return true;
if (input.contains("â") == true) return true;
if (input.contains("æ") == true) return true;
if (input.contains("ç") == true) return true;
if (input.contains("é") == true) return true;
if (input.contains("è") == true) return true;
if (input.contains("ê") == true) return true;
if (input.contains("ë") == true) return true;
if (input.contains("ï") == true) return true;
if (input.contains("î") == true) return true;
if (input.contains("ô") == true) return true;
if (input.contains("œ") == true) return true;
return false;
}
フランス語の文字が含まれている場合は true を返し、そうでない場合は false を返します。
実際には、これは私が行う方法ではなく、次の方法で行います。
public boolean hasFrenchCharacter(String input) {
return input.contains("ù") ||
input.contains("û") ||
input.contains("ü");
//and so on...
}
于 2012-12-19T23:53:33.800 に答える