【问题标题】:Split String with different delimiters at once一次使用不同的分隔符拆分字符串
【发布时间】:2016-09-27 12:31:49
【问题描述】:

我从服务器获取一个字符串并想将其拆分,以使用SpannableStringBuilder 设置不同的颜色。

例如,我得到如下字符串:

" Hi Mr Xyz, Please visit [Paris::FRANCE] and [Rome::ITALY] once."

我想为 ParisRome 设置不同的颜色。我可以使用以下方法将巴黎和罗马分开:

Pattern pattern = Pattern.compile("\\[([^\\]]+)]");
Matcher matcher = pattern.matcher(wholeString);
while (matcher.find())
{
    System.out.println(matcher.group(1));
}

但是如何拆分主字符串??

【问题讨论】:

  • 也许您可以使用replaceAll("\\[([^\\]:]+)::([^\\]]*)]", "<color name="$2">$1</color>")? :) 好吧,另一种选择是将此正则表达式与appendReplacement 一起使用,以使用ParisRome 来搜索相应的颜色代码。
  • 只是从原来的字符串中减去找到的字符串?
  • 但我想为巴黎和罗马设置不同的颜色
  • @Akshay,阅读第一条评论
  • @Vyacheslav bro 评论在我放我的时候被编辑了。

标签: java android string


【解决方案1】:

试试这样:

String wholeString = " Hi Mr Xyz, Please visit [Paris::FRANCE] and [Rome::ITALY] once.";
             Pattern pattern = Pattern.compile("\\[([^\\]]+)]");
             Matcher matcher = pattern.matcher(wholeString);
             while (matcher.find())
             {
                 for (int i = 0; i < matcher.group(1).split("::").length; i++) {
                     System.out.println(matcher.group(1).split("::")[i]);
                }
             }

【讨论】:

    猜你喜欢
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    相关资源
    最近更新 更多