我有一个长字符串,用于保存段落的标签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>
我怎样才能实现它?
答案 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保存更多的值。这当然不是最干净的解决方案,但它可以在文本中添加额外的字符。