Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java如何拆分混合语言字符串_Java_Android - Fatal编程技术网

java如何拆分混合语言字符串

java如何拆分混合语言字符串,java,android,Java,Android,我有一根绳子。(输入字符串始终是一个英语句子,其翻译为另一种语言。但在一行中,没有限制。) 我怎样才能把它一分为二 2019雨降るしですね。 It rains 2019. 我试过了,但失败了 String aString = "2019/1/1,なにげない日々。2019/1/1 is a simple day."; Pattern pat = Pattern.compile("([\\p{InHiragana}]+)");

我有一根绳子。(输入字符串始终是一个英语句子,其翻译为另一种语言。但在一行中,没有限制。)

我怎样才能把它一分为二

2019雨降るしですね。

It rains 2019.
我试过了,但失败了

                String aString = "2019/1/1,なにげない日々。2019/1/1 is a simple day.";
                Pattern pat = Pattern.compile("([\\p{InHiragana}]+)"); 
                Matcher m = pat.matcher(aString);
                System.out.println(m.find()); // true
                String firstHour = m.group(0);
                System.out.println(firstHour);      

\W
可以是不在
[a-zA-Z_0-9]
集中的字符的选项


第一种情况的快速解决方案:
(\\d{4})(\\W+)(\\s*)(.*)
\W
可以作为不在
[A-zA-Z_0-9]
集中的字符的选项


第一种情况的快速解决方案:
(\\d{4})(\\W+)(\\s*)(.*)

我建议您尝试改进接收数据的格式,因为这个问题无法100%准确地解决。也就是说,有一种方法适用于大多数情况:

  • 将字符串拆分为单词(例如
    .Split(“”
  • 对于数组中的第一项:
  • (如果都是数字,请转到下一个单词)
  • 存储此值
  • 对于数组中的每个其他项:
  • 检查单词是否都是英文字母
  • 如果是,并且前面的单词是非英语字母,那么就有了断点
  • 断点两侧的前X个字和最后X个字

  • 现在将有2个字符串。一个是非英语字符串,一个是英语字符串。您必须进行大量测试,并可能改进数字处理方法(使用regex分割数字?),但这只是一个开始。

    我建议您尝试改进接收数据的格式,因为这个问题无法100%准确地解决。也就是说,有一种方法适用于大多数情况:

  • 将字符串拆分为单词(例如
    .Split(“”
  • 对于数组中的第一项:
  • (如果都是数字,请转到下一个单词)
  • 存储此值
  • 对于数组中的每个其他项:
  • 检查单词是否都是英文字母
  • 如果是,并且前面的单词是非英语字母,那么就有了断点
  • 断点两侧的前X个字和最后X个字

  • 现在将有2个字符串。一个是非英语字符串,一个是英语字符串。您将需要进行大量测试,并且可能会改进处理数字的方法(使用regex分割数字?),但这只是一个开始。

    您能再解释一下吗?你有分隔符吗?没有分隔符。这个问题很难解决。。非常感谢。你能再解释一下吗?你有分隔符吗?没有分隔符。这个问题很难解决。。非常感谢。有没有更通用的方法。输入是一个英语句子和它在另一个语言中的翻译。但是在一行中。非常感谢。有没有更通用的方法。输入是一个英语句子和它在另一个语言中的翻译。但是在一行中。谢谢。
                    String aString = "2019/1/1,なにげない日々。2019/1/1 is a simple day.";
                    Pattern pat = Pattern.compile("([\\p{InHiragana}]+)"); 
                    Matcher m = pat.matcher(aString);
                    System.out.println(m.find()); // true
                    String firstHour = m.group(0);
                    System.out.println(firstHour);