带有英文和中文文本的java字符串

时间:2017-10-20 02:44:39

标签: java string substring

我有一个运行时字符串,可以包含带有中文或日文文本的英文文本。例如约翰(汉字)我想解析这个文本并提取非英文字符。

indexOf括号返回-1。有人能指出我正确的方向吗?

String str = "John (漢字)";
int startIndex = str.indexOf("(");
int endIndex = str.indexOf(")");

3 个答案:

答案 0 :(得分:2)

当我尝试使用您的代码时,它运行良好〜enter image description here

但返回-1表示字符串中没有符号,请再次检查。你可以将符号转换为int并进行比较!

答案 1 :(得分:1)

当我运行代码时添加了几个queryset = queryset1 | queryset2 语句:

System.out.println

输出是:

public class CJKText {
    public static void main(String[] args) {
        String str = "John (漢字)";
        int startIndex = str.indexOf("(");
        System.out.println("startIndex: " + startIndex);
        int endIndex = str.indexOf(")");
        System.out.println("endIndex: " + endIndex);
    }
}

请确认发布的代码是您在调试器中检查的代码 - 也许正如许多评论者所说,您的实际代码包含外观的字符,如Unicode 0x28和{ {3}}括号,但实际上不是那些字符代码。

答案 2 :(得分:1)

如果您只需要提取汉字/汉字部分,请尝试这样的事情:

System.out.println( str.replaceAll("\\P{IsHan}+",""));

糟糕!

如果您的支撑也在Han脚本中......

,这没有用