java读取出来了一段字符串,里面包含多个换行符,现在我需要每隔116个字节来添加一个换行符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java读取出来了一段字符串,里面包含多个换行符,现在我需要每隔116个字节来添加一个换行符相关的知识,希望对你有一定的参考价值。

遇到原字符串中本来就有的换行符,则字节长度重新再按照116个字节添加一个换行符号。

public class Check
public 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::substrstd::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字段存入了一段字符串,现在我怎样一行行读取出来

java读取文件后又很多换行,想把它只留一个换行

java项目中怎样批量替换一段文字?

如果字符串包含多个 \n,如何在每 25 个换行符(\n)上拆分一个字符串

如何在Java中向后打印多个字符串

java jxl 读取excel时读取了很多空行 求解决办法