java读取出来了一段字符串,里面包含多个换行符,现在我需要每隔116个字节来添加一个换行符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java读取出来了一段字符串,里面包含多个换行符,现在我需要每隔116个字节来添加一个换行符相关的知识,希望对你有一定的参考价值。
遇到原字符串中本来就有的换行符,则字节长度重新再按照116个字节添加一个换行符号。
public class Checkpublic static void main(String[] args)
String s = new String(
"123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890");
System.out.println(check(s));
public static String check(String s)
StringBuilder sb = new StringBuilder(s);
int count = 0;
for (int i = 0; i < sb.length(); i++)
if (sb.charAt(i) == '\n')
count = 0;
else if (count == 116)
sb.insert(i, "\n");
count = 0;
else
count++;
return sb.toString();
//结果是
12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456
78901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012
34567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
90123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234
5678901234567890123456789012345678901234567890 参考技术A 那要是本来第118个字节是换行符应该怎么处理?
是在116个字节处加换行符,然后隔2个字节又是换行符(原来的)吗? 参考技术B String s = "abcd;ljas;dv1235\n6qweq";
int len = s.length();
StringBuffer stb = new StringBuffer();
for(int i=0,pos=1; i<len; i++,pos++)
char c = s.charAt(i);
if(c == '\n') pos = 0;
stb.append(c);
if(pos>=116)
pos = 0;
stb.append("\n");
System.out.println(stb.toString());
如果字符串包含多个 \n,如何在每 25 个换行符(\n)上拆分一个字符串
【中文标题】如果字符串包含多个 \\n,如何在每 25 个换行符(\\n)上拆分一个字符串【英文标题】:How to split a string on every 25th line break(\n) if it contains multiple \n如果字符串包含多个 \n,如何在每 25 个换行符(\n)上拆分一个字符串 【发布时间】:2015-09-01 13:13:37 【问题描述】:我已读取一个文件并将其内容存储到 std::string
变量 BUF
中,现在想将数据拆分为小块,其中每个块包含 25 行。
【问题讨论】:
【参考方案1】:我看到两个选项:
从BUF
构造std::istringstream
(或使用读取文件的流)并使用std::getline
逐行读取并附加到前一行,同时最多计数25,依此类推...
在循环中使用 std::string::find
,计数为 25,然后使用 std::string::substr
或 std::find
并从迭代器范围构造。
我认为这是足够的提示。
【讨论】:
只需将迭代器/索引保持在您离开的位置 + 2。这将是下一个块的开始。【参考方案2】:我成功了!
if(N>25) \\N no of lines
int i=0;
std::istringstream ss(text);
text="";
string splited,part="";
while(std::getline(ss, splited, '\n'))
part+=splited+"\n";
if(i==24)
i=0;
part.erase(part.size() - 1);
d.Insert(part,time);
cout<<part;
part="";
continue;
else
++i;
continue;
if(i!=0)
d.Insert(part,time);
else
d.Insert(text,time);
【讨论】:
以上是关于java读取出来了一段字符串,里面包含多个换行符,现在我需要每隔116个字节来添加一个换行符的主要内容,如果未能解决你的问题,请参考以下文章
oracle中clob字段存入了一段字符串,现在我怎样一行行读取出来