gpt4 book ai didi

java - 如何根据数字字符第一次出现来分割日语字符串?

转载 作者:行者123 更新时间:2023-11-30 07:03:27 27 4
gpt4 key购买 nike

我有一个日语字符串,其中包含日语和数字字符。我想根据字符串中第一次出现的数字字符来拆分字符串。例如,

String value = "上目黒1丁目2-3"; 
after split
value1 = "上目黒;
value2 = "1丁目2-3";

对于英文字符串,我可以使用以下代码来实现此目的。

String s = "abc1w2";
Matcher matcher = Pattern.compile("([^\\d]+)(.*)").matcher(s);
if (matcher.matches()) {
System.out.println(matcher.group(1).trim());
System.out.println("sep");
System.out.println(matcher.group(2));

但它不适用于日语字符。请帮忙

最佳答案

您可以使用自己的方法与 Pattern.UNICODE_CHARACTER_CLASS 标志,这将使 \d Unicode 感知:Matcher matcher = Pattern.compile("( [^\\d]+)(.*)", Pattern.UNICODE_CHARACTER_CLASS).matcher(s);。请参阅Java demo .

但是,您可以仅使用分割:

String value = "上目黒1丁目2-3";
String[] res = value.split("(?U)(?=\\d)", 2);
System.out.println(Arrays.toString(res));

请参阅Java demo

.split("(?U)(?=\\d)", 2) 会将字符串分成两部分(请参阅 2 参数)使用 (?=\d) Unicode 感知模式(请参阅 (?U),一个 Pattern.UNICODE_CHARACTER_CLASS 嵌入标志选项),匹配数字之前的位置((?=....) 是正向先行,仅检查右侧的模式,但不会消耗字符串,因为它是零宽度 Assets )。

关于java - 如何根据数字字符第一次出现来分割日语字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40509786/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com