在Java中,我们如何检查字符串以查看它是否包含法文字母?如何检查一个字符串是否包含法文字母?
回答
public static boolean containsFrench(String s) {
Pattern frenchPattern = Pattern.compile("(?i)[çèéêîôœû]");
return frenchPattern.matcher(s).find();
}
+1比我的天真循环好很多;-) – assylias
由于“法文字母”的概念定义不明确,解决此问题的最简单方法是创建一个包含您认为合格的所有字母的数组,然后只测试字符串中的每个字符以查看它是否是是在阵列中:
(我不打算为你编写代码,因为这是任何人完成Java课程或教程应该能够在五分钟内写入的东西,如果你不能在5分钟内完成,然后你需要亲自练习)。
有更优雅和/或更有效的方法来做到这一点。但对初学者来说,简单是有好处的。
快速的解决方案 - 你可能要检查列表是详尽的(例如,我没有将重音的大帽或者这是不是很普遍在Y),但这个概念应该工作:
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);
}
}
}
这可能需要'frenchLetters.contains(Character.toLowerCase(c))' –
@BrendanLong'Character.toLowerCase'不是locale知道的,所以可能会导致意外的结果。 'String.toLowerCase(Locale.FR)'是有道理的。但我不知道是否所有重音大写字母都是有效的...... – assylias
尝试:
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;
}
如果它有一个法国人的性格,否则为false这将返回true。
真的,这不是我会做的方式,我会做这种方式:
public boolean hasFrenchCharacter(String input) {
return input.contains("ù") ||
input.contains("û") ||
input.contains("ü");
//and so on...
}
'== true'是多余的(可以是'if(input.contains(“ ù“))'等),但除此之外,我喜欢这个答案,因为它可能对初学者更有意义。 –
- 1. 检查一个字符串是否包含数字和字母
- 2. 如何检查字符串是否只包含英文字母?
- 3. 检查一个字符串是否只包含某些字母
- 4. 如何检查一个字符是否包含特定字母
- 5. 如何检查一个字符串是否包含英文字母(A-Z)?
- 6. PHP检查字符串是否包含一些字母/数字
- 7. 如何检查字符串是否包含特殊字母?
- 8. Lua:如何检查一个字符串是否只包含数字和字母?
- 9. c#如何检查一个Long字符串是否包含任何字母?
- 10. 如何检查字符串是否包含字母表中的任何字母?
- 11. 检查一个字/字母是否包含在一个字符串与JavaScript
- 12. 检查一个字符串是否不包含一些文字
- 13. 如何检查一个字符串是否包含zalgo文本?
- 14. 如何检查一个字符串是否包含字典
- 15. Java,如何检查一个字符串是否包含数字?
- 16. 如何检查一个字符串是否多次包含相同的字母?
- 17. 如何检查一个字符串是否只包含PHP中的字母?
- 18. 如何检查生成的字符串是否至少包含一个字母
- 19. 检查一个字符串是否包含任何字符
- 20. Applescript:检查一个字符串是否包含空字符串?
- 21. 如何检查一个字符串是否包含一个子字符串 - mysql
- 22. 检查字符串是否包含字母数字
- 23. 如何检查一个字符串是否包含任何一些字符串
- 24. 如何检查字符串是否包含某个字符?
- 25. 检查一个字符串不包含字母字符
- 26. 如何检查一个TextView是否包含某个字符串
- 27. Javascript - 如何检查一个字符串是否包含多个子字符串
- 28. 如何检查一个字符串是否是纯字母?
- 29. 检查一个字符串是否只包含特殊字符
- 30. 检查一个字符串是否包含给定字符
使法国字母的排列并核对? – Doorknob
什么是“法文字母”?拉丁字符?只有以法文显示的特定字母(如果是,哪些字母)? –
谢谢,我的意思是法语特殊字符(带有口音的那些!)。 – Ashkan