用字符串检测希伯来字母

时间:2014-01-31 07:53:00

标签: java string

我正在尝试编写一些代码,将带有希伯来字母的文件更改为有效的英文名称,但是我在解决如何检测这些文件时遇到了问题,我为listfiles函数构建了一个过滤器。

我也在网上搜索过,我找不到答案,但是这个:

How to tell if a string contains characters in Hebrew using PHP?

但它不是java,它的PHP。 任何想法?

4 个答案:

答案 0 :(得分:2)

Pattern p = Pattern.compile("\\p{InHebrew}");
Matcher m = p.matcher(input);

答案 1 :(得分:2)

根据this页面,unicode希伯来文字有一个正则表达式类别。如果字符串包含希伯来文字,则此正则表达式:\\p{Hebrew}应该为true。

答案 2 :(得分:2)

在我的情况下,选择的答案不适用于混合英语和希伯来语字符串。

    String fileName = "ףךלחףךלחץ.msg";
    Pattern p = Pattern.compile("\\p{InHebrew}", Pattern.UNICODE_CASE);

    System.out.println(p.matcher(fileName).matches());  //false

输出:false。

要检查字符串是否包含下一个使用的代码的希伯来字母:

    String fileName = "ףךלחףךלחץ.msg";
    Pattern p = Pattern.compile("\\p{InHebrew}", Pattern.UNICODE_CASE);
    Matcher m = null;

    boolean hebrewDetected = false;
    for (int i = 0; i < fileName.length() && !hebrewDetected; i++){
        String letter = fileName.charAt(i) + "";
        m = p.matcher(letter);
        hebrewDetected = m.matches();
        if (hebrewDetected){
             break;
        }
    }

    System.out.println("hebrewDetected=" + hebrewDetected ); //true

输出:true。

答案 3 :(得分:2)

要测试String str包含希伯来字母,请使用:

str.matches(“。* [א-ת] +。*”)

如果str包含希伯来字母,则

返回true。

相关问题