.net 每72个字符后换行

.net 每72个字符后换行,.net,.net,有一些长的base64字符串,必须每72字节用新行格式化,并转换为字节数组 拥有: 但它每76字节插入一行。 如何将其转换回保留新行的字节数组?将字符串设置为StringBuilder,并在循环中使用方法Insert() var sb = new StringBuilder("the string"); for (int i = 72; i < sb.Length; i+=74)//72 + "\r\n" { sb.Insert(i, "\r\n"); } var sb=new

有一些长的base64字符串,必须每72字节用新行格式化,并转换为字节数组

拥有:

但它每76字节插入一行。
如何将其转换回保留新行的字节数组?

将字符串设置为
StringBuilder
,并在循环中使用方法
Insert()

var sb = new StringBuilder("the string");
for (int i = 72; i < sb.Length; i+=74)//72 + "\r\n"
{
    sb.Insert(i, "\r\n");
}
var sb=new StringBuilder(“字符串”);
for(int i=72;i
将字符串设置为
StringBuilder
并在循环中使用方法
Insert()

var sb = new StringBuilder("the string");
for (int i = 72; i < sb.Length; i+=74)//72 + "\r\n"
{
    sb.Insert(i, "\r\n");
}
var sb=new StringBuilder(“字符串”);
for(int i=72;i
如果其他人想在VB中执行此操作。。。我将@burning_LEGION的拆分循环转换为VB.NET,如下所示:

For i = 72 To sb.Length Step 74
    sb.Insert(i, vbCrLf)
Next
这有一个问题:当for循环开始时,“end”语句(
sb.Length
)只计算一次。例如,如果字符串长度为656个字符,VB将只将其拆分为八行,即使在添加CRLFs后,它应该是九行。这使得最后一行比其他行长。对于一个非常大的物体,这可能是非常重要的

显然,
Do While
语句的行为符合要求,随着字符串变长,在每次迭代中重新计算“While”条件:

i = 72
Do While i < sb.Length
    sb.Insert(i, vbCrLf)
    i += 74
Loop
i=72
趁我不在时做某事
sb.插入(i,vbCrLf)
i+=74
环

如果其他人想在VB中执行此操作。。。我将@burning_LEGION的拆分循环转换为VB.NET,如下所示:

For i = 72 To sb.Length Step 74
    sb.Insert(i, vbCrLf)
Next
这有一个问题:当for循环开始时,“end”语句(
sb.Length
)只计算一次。例如,如果字符串长度为656个字符,VB将只将其拆分为八行,即使在添加CRLFs后,它应该是九行。这使得最后一行比其他行长。对于一个非常大的物体,这可能是非常重要的

显然,
Do While
语句的行为符合要求,随着字符串变长,在每次迭代中重新计算“While”条件:

i = 72
Do While i < sb.Length
    sb.Insert(i, vbCrLf)
    i += 74
Loop
i=72
趁我不在时做某事
sb.插入(i,vbCrLf)
i+=74
环

它看起来像是
Convert。FromBase64String
忽略空白,因此您将丢失换行符。调用
Convert.ToBase64String
时,请使用
base64格式选项.None
,然后使用循环和子字符串手动插入换行符。很抱歉,没有魔弹。它看起来像是
Convert.FromBase64String
忽略空格,因此您丢失了换行符。调用
Convert.ToBase64String
时,请使用
base64格式选项.None
,然后使用循环和子字符串手动插入换行符。对不起,没有灵丹妙药。C#是否在每次迭代中重新评估
条件的?我发现如果你对循环使用
,VB不会,但是如果你在
循环中使用
,VB会。@MarkBerry两者都应该重新计算,因为无穷循环C在每次迭代中都会对
条件重新计算
?我发现如果你使用<代码>进行<代码>循环,VB不会这样做,但是如果你使用<代码>进行<代码>循环,VB会这样做。@MarkBerry两者都应该重新计算,因为无限循环