检查字符串是波斯语还是英语

时间:2014-08-19 10:36:53

标签: java android string android-webview persian

我有一个webview,它会从一个url加载一个字符串,我不确定这是不是正确的方法,但我想做的是检查字符串是否是波斯语所以我改变了我的webview文本与rtl对齐,否则如果是英文,则将其更改为ltr。是否可以确定字符串是波斯语还是英语?或者是否有其他更好的方法来处理这件事?

提前致谢。

5 个答案:

答案 0 :(得分:9)

尝试以下正则表达式,检查阿拉伯语,波斯语和希伯来语字符范围。

public static final Pattern RTL_CHARACTERS = 
    Pattern.compile("[\u0600-\u06FF\u0750-\u077F\u0590-\u05FF\uFE70-\uFEFF]");
Matcher matcher = RTL_CHARACTERS.matcher("براي تست");
if(matcher.find()){
   return true;  // it's RTL
} 

答案 1 :(得分:0)

以下是解释Language recognition in Java

的方法

你能做的只是检查字符串是否是英文字符串,如果不是,则应该是波斯语。

TextCat:http://textcat.sourceforge.net/

答案 2 :(得分:0)

在java中有语言检测库来检测语言。我认为它可能会对你有所帮助。试试吧。

您需要导入以下库文件才能使用此文件。

import com.cybozu.labs.langdetect.Detector;
import com.cybozu.labs.langdetect.DetectorFactory;
import com.cybozu.labs.langdetect.Language;

了解更多参考资料click here

答案 3 :(得分:0)

感谢接受的答案:
对于具有特定长度的英语字符,数字,空格和波斯语,阿拉伯语,希伯来语字符,您可以使用以下正则表达式模式:

class Article(object):
"""repersent an article"""

def __init__(self,title = "",year = 0,author = "",page = 0,price = 0):
    """everything that might be conclude in an article"""
    self._title = title
    self._year = year
    self._author = author
    self._page = page
    self._price = price

def getTitle(self):
    """Returns the article's title"""
    return self._title

def getYear(self):
    """Returns the article's publish year"""
    return self._year

def getAuthor(self):
    """Returns the article's author"""
    return self._author

def getPage(self):
    """Returns the article's page"""
    return self._page

def __str__(self):
    return str(self._title) + str(self._year) + str(self._author) + str(self._page) + str(self._price)


b = Article("pyomo",2016,"Marcel",354,40.99)
print(b)

javascript示例:

//MAX_LENGTH = maximum allowable length of string
var pattern = /^[a-zA-Z0-9-\u0600-\u06FF\u0750-\u077F\u0590-\u05FF\uFE70-\uFEFF ]{2,MAX_LENGTH}$/;

答案 4 :(得分:0)

尝试 Persian-tools 一个很棒的 JavaScript 库以及许多其他有用的功能。

import { isPersian, toPersianChars } from "persian-tools2";

isPersian("این یک متن فارسی است؟") // true
isPersian("Lorem Ipsum Test") // false