在Java中,我们如何检查字符串以查看它是否包含法语字母?
答案 0 :(得分:4)
public static boolean containsFrench(String s) {
Pattern frenchPattern = Pattern.compile("(?i)[çèéêîôœû]");
return frenchPattern.matcher(s).find();
}
答案 1 :(得分:2)
由于“法语字母”的概念定义不明确,解决这个问题的最简单方法是创建一个包含您认为合格的所有字母的数组,然后只测试字符串中的每个字符以查看它是否是在数组中:
(我不打算为你编写代码,因为任何完成Java课程或教程的人都应该能在五分钟内完成。如果你不能在5分钟内完成,那么你需要自己练习。)
有更优雅和/或更有效的方法来做到这一点。但简单对初学者来说是好事。
答案 2 :(得分: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);
}
}
}
答案 3 :(得分: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...
}