【问题标题】:how to perform intelligent string check in android如何在android中执行智能字符串检查
【发布时间】:2016-07-23 10:27:13
【问题描述】:

我有一个长字符串例如:

字符串2:

12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123

字符串3:

123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 234567890

我想显示字符串中的前 144 个字符,我需要显示更多内容。如果第 144 个字符不等于字符串 3 中所示的空格,那么我需要检查第 144 个字符之后的空格字符,然后我需要中断并显示更多内容。

我可以使用以下代码检查第 144 个字符是否为空格:

String.charAt(144) == ' ';

但是如果第 144 个字符不是空格,那么当遇到下一个空格字符时,我该如何包装字符串以打破它。

【问题讨论】:

  • 你想要if(String.charAt(144) != ' ') return myString.split(" ")[0];这样的东西吗?
  • 如果第 144 个字符不等于空格,那么我想读取字符串,我想完整地读取单词然后在单词之后中断..

标签: java android regex


【解决方案1】:

您可以使用此代码:

// String to be scanned to find the pattern.
String line = "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 234567890";
String pattern = "(.{144}[^ ]*).*";

// Create a Pattern object
Pattern r = Pattern.compile(pattern);

// Now create matcher object.
Matcher m = r.matcher(line);
if (m.find( )) {
 System.out.println(m.replaceAll("$1..."));
} else {
 System.out.println(line);
}

demo

它将在字符串的第 144th 个字符之后的空格处分割,不管它有多远。以您的示例为例,输出为:

123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890...

【讨论】:

    猜你喜欢
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 2013-05-18
    相关资源
    最近更新 更多