Android - 将段落拆分为字符串

时间:2014-03-24 14:29:05

标签: android

我有一个长字符串,用于保存段落的标签p / p。这是要放在Web视图中的html字符串。

我需要将段落分成两部分并将每一段分配给一个字符串。 例如:

String A:

<p> I have an orange <\p>
<p> I have an apple <\p>
<p> I have a banana <\p>
<p> I have a fruit <\p>
<p> I love to go bike riding<\p>
<p> Hello how are you <\p>

Now I need to split the paragraphs into 2 and assign to 2 different strings:

String B should have:
<p> I have an orange <\p>
<p> I have an apple <\p>
<p> I have a banana <\p>

String C should have:

<p> I have a fruit <\p>
<p> I love to go bike riding<\p>
<p> Hello how are you <\p>

我怎样才能实现它?

2 个答案:

答案 0 :(得分:1)

这是代码。注意我在strA中添加§字符的位置,以便分割字符串:

final String strA = "<p> I have an orange </p><p> I have an apple </p><p> I have a banana </p>§<p> I have a fruit </p><p> I love to go bike riding</p><p> Hello how are you </p>";
final String arr[] = strA.split("§");
final String strB = arr[0]; // Contains: "<p> I have an orange </p><p> I have an apple </p><p> I have a banana </p>"
final String strC = arr[1]; // Contains: "<p> I have a fruit </p><p> I love to go bike riding</p><p> Hello how are you </p>"

答案 1 :(得分:0)

我假设你的意思是</p>而不是<\p>作为结束标记。

假设您始终拥有此结构,<p>...</p>后跟<p>...</p>,而中间没有任何内容,您可以这样做:

String A = "<p> I have an orange </p>"
    + "<p> I have an apple </p>"
    + "<p> I have a banana </p>"
    + "<p> I have a fruit </p>"
    + "<p> I love to go bike riding</p>"
    + "<p> Hello how are you </p>";

String[] paragraphs = A.split("</p>");
final int halfParagraphs = (int) Math.ceil((double) paragraphs.length / 2);

StringBuilder bBuilder = new StringBuilder();
StringBuilder cBuilder = new StringBuilder();
for(int idxB = 0; idxB < halfParagraphs; idxB++) {
    int idxC = idxB + halfParagraphs;
    // split removes the separator, so we need to append it again
    bBuilder.append(paragraphs[idxB]).append("</p>");
    if (paragraphs.length > idxC) {
        cBuilder.append(paragraphs[idxC]).append("</p>");
    }
}
String B = bBuilder.toString();
String C = cBuilder.toString();

我还假设如果数字不能均匀分布,你希望字符串B保存更多的值。这当然不是最干净的解决方案,但它可以在文本中添加额外的字符。