【问题标题】:How to split text as android textview如何将文本拆分为android textview
【发布时间】:2015-05-19 16:56:45
【问题描述】:

如何通过 split() 或 matcher 将文本拆分为 android textview。当我拆分文本时,我也想保留分隔符。我用过

 Pattern stuff = Pattern.compile("[\\s]|[\\w+]");

 split("(?<!^|[a-zA-Z'])|(?![a-zA-Z'])")

但结果不是我所期望的。它不像 android 中的 textview 那样分裂

示例可以是任何文本:

Lorem Ipsum 很简单!印刷和排版行业的虚拟文本。自 1500 年代以来,Lorem Ipsum 一直是行业的标准虚拟文本,当时一位不知名的印刷商采用了一种类型的厨房并将其加扰以制作类型样本书。它不仅经历了五个世纪,而且经历了电子排版的飞跃,基本保持不变。它在 1960 年代随着包含 Lorem Ipsum 段落的 Letraset 表的发布而流行起来,最近还随着 Aldus PageMaker 等桌面出版软件(包括 Lorem Ipsum 的版本)而普及。

【问题讨论】:

  • 发布您尝试拆分的文本示例。
  • @Elenasys 问题已编辑
  • 好的,你的文本中的分隔符是什么?空间, ”。” ?
  • @Elenasys 我不知道 textview 如何将文本划分为单词/句子,这就是我不知道分界符的方式。知道我认为它会是空格(必须支持多个空格),“-”,“。”,,,。我也想保留分隔符

标签: android textview


【解决方案1】:

我想您希望将文本拆分为句子,如下所示

Lorem Ipsum is simply
dummy text of the printing and typesetting industry
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book
It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged
It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum

我使用了字符串的拆分功能,如下所示。

String[] results = source.split("!|\\.|\\?");

希望对你有帮助。

另外,如果你想保留分隔符,下面是示例。

    String[] results = source.split("!|\\.|\\?");

    int offset = 0;
    for(String result : results){

        offset += result.length();
        // just append the delimiter after the split sub string.
        Log.d("", "result = " + result + source.charAt(offset));
        offset +=1;
    }

【讨论】:

  • 我也想保留分隔符
猜你喜欢
  • 2021-01-24
  • 1970-01-01
  • 2013-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-08
  • 2015-12-05
相关资源
最近更新 更多