- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当发生错误时,我正在生成一封电子邮件。我正在使用 StringBuilder.AppendLine()
和 StringBuilder.AppendLine(String)
构建电子邮件正文,但是我的电子邮件正文显示为一行很长没有换行符。
例如:
Dim ErrorsStringBuilder As New StringBuilder
ErrorsStringBuilder.AppendLine(String.Format("Status : {0} Message : {1}", Results.Status, Results.ErrorMessage))
ErrorsStringBuilder.AppendLine(String.Format("Failed : {0} Total : {1}", Results.FailedCount, Results.TotalCount))
ErrorsStringBuilder.AppendLine("Batch #: " & Results.BatchNumber)
ErrorsStringBuilder.AppendLine()
ErrorsStringBuilder.AppendLine("Individual Errors:")
ErrorsStringBuilder.AppendLine()
For Each FailedRecord .......
ErrorsStringBuilder.AppendLine(String.Format("Failed Record ID : {0} Message : {1}", FailedRecord.ID, FailedRecord.ErrorText))
Next
这是 MSDN 对 .AppendLine()
和 .AppendLine(String)
的描述。
Appends the default line terminator to the end of the current StringBuilder object.
Appends a copy of the specified string followed by the default line terminator to the end of the current StringBuilder object.
我的问题是:为什么没有换行符? 为什么没有应用默认的行终止符?我误解了描述吗?
附言。我确实看过this question但没有解释为什么。
而且我知道我可以使用 System.Environment.NewLine
或 "\n"
来换行。
最佳答案
您的电子邮件正文似乎是 HTML
类型但你正在渲染 simple text
-
如果你真的想要它是simple text
然后在您的电子邮件对象中设置 IsBodyHtml = false
它会在不修改您的 StringBuilder 代码的情况下呈现新行 -
MailMessage mail = new MailMessage();
mail.IsBodyHtml = false;
如果您只需要 HTML,请尝试在每一行之后添加 -
ErrorsStringBuilder.AppendLine("<br />");
实际上您正在尝试构建 HTML 输出。
在 HTML 中,如果你写 -
<html>
<body>
Hi,
How are you?
</body>
</html>
这会导致——
Hi, How are you?
要使其工作,您应该将这两个语句包含在两个不同的 block 元素中 -
在这种情况下,我使用段落 -
<html>
<body>
<p>Hi,</p>
<p>How are you?</p>
</body>
</html>
现在这将导致 -
Hi,
How are you?
在您的情况下,您需要找出 HTML 来呈现所需的输出。否则使用 <br />
作为解决方法。
带有 <p>
的 HTML 示例标签 -
Dim ErrorsStringBuilder As New StringBuilder
ErrorsStringBuilder.AppendLine(String.Format("<p>Status : {0} Message : {1}</p>", Results.Status, Results.ErrorMessage))
ErrorsStringBuilder.AppendLine(String.Format("<p>Failed : {0} Total : {1}</p>", Results.FailedCount, Results.TotalCount))
ErrorsStringBuilder.AppendLine("<p>Batch #: </p>" & Results.BatchNumber)
ErrorsStringBuilder.AppendLine()
ErrorsStringBuilder.AppendLine("<p>Individual Errors:</p>")
ErrorsStringBuilder.AppendLine()
For Each FailedRecord .......
ErrorsStringBuilder.AppendLine(String.Format("<p>Failed Record ID : {0} Message : {1}</p>", FailedRecord.ID, FailedRecord.ErrorText))
Next
关于.net - StringBuilder.AppendLine() 不换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16334244/
公共(public)类TestMyStringBuilderII { public static void main(String[] args) { StringBuilder sb = n
我们都知道字符串是不可变的而StringBuilder是可变的。正确的。那么为什么它的方法会返回一个 StringBuilder 对象。它们不应该都是 void 方法吗? 为什么会这样 public
当我读到 equals() 方法用于比较 java 中的字符串是否相等但是当我运行这段代码时我得到输出 false 。为什么? public class TestStringBuilder { pu
我收到一份模型列表。模型的数量可能很大。这个模型有一堆属性,其中任何一个都可能是null。 我需要根据模型的属性为每个模型构建一个字符串。如果 property == null,那么我会在结果字符串中
我写了一些代码,其中有很多字符串创建。为了尽量避免一遍又一遍地创建昂贵的字符串,我使用了 java StringBuilder 类。 我的代码有点像这样: public String createSt
这个问题在这里已经有了答案: 关闭10年前。 Possible Duplicate: StringBuilder vs String concatenation in toString() in Ja
类 StringBuilder 定义了四个构造函数,它们都不接受 StringBuilder,但以下编译: StringBuilder sb = new StringBuilder(new Strin
我正在努力在我的代码中使用 StringBuilder,而不是 String使代码在所有解析和连接过程中具有时间效率。 但是当我查看它的源代码时,substring() 方法AbstractStrin
我想知道 StringBuilder,我有一个问题希望社区能够解释。 让我们忘掉代码的可读性,哪些是更快,为什么? StringBuilder.Append: StringBuilder sb = n
这个问题在这里已经有了答案: Single exclamation mark in Kotlin (6 个回答) Example of when should we use run, let, app
我已经附加了一些带有一些字符的 strBuild 并将该 strBuild 放入 stringBuildArr 中。然后在strBuild上调用java.lang.StringBuilder.dele
在 C# 中哪个内存效率更高:选项 #1 还是选项 #2? public void TestStringBuilder() { //potentially a collection with
当使用 StringBuilder.ToString() 时,我遇到了 OutOfMemory 异常。因为我的字符串需要很大的空间。这就是为什么我需要一种方法(也许通过流式传输)来让它工作。 这是我的
这个问题已经有答案了: What's the difference between instance method reference types in Java 8? (3 个回答) 已关闭 7 年
这个问题在这里已经有了答案: What's the difference between instance method reference types in Java 8? (3 个答案) 关闭
最近的 question came up关于使用 String.Format()。我的部分回答包括使用 StringBuilder.AppendLine(string.Format(...)) 的建议
在 SO 上看到一个关于连接字符串的问题后,我做了一些测试,了解到在 foreach 中连接字符串比使用 for 循环和使用数组中的索引慢。由于对数组进行绑定(bind)检查,for 循环不应该变慢吗
我的问题是如果我有时在同一个字符串上使用多线程 字符串不会被替换。(我在记事本上写了这个,所以语法可能是 错误) 使用 System.Thread ...当然还有其他 class .... {
如果我创建一个不可变类。所有字段都必须是最终的。如果我像这样使用 stringbuilder final StringBuilder s = new StringBuilder("你好"); ,那么
是否可以配置 Java StringBuilder类在每次调用之间追加一个新行以追加? 最佳答案 我不认为 StringBuilder内置了该功能。既然你不能只是扩展它,你可以尝试使用装饰器模式...
我是一名优秀的程序员,十分优秀!