我想知道如何在没有连续符号(+)
的情况下进行多行字符串我试过这个
string a = String.Format(@"zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
{0}xxxxxxx", "GGG");
string b = @"zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
xxxxxxx";
string c = "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
+ "xxxxxxx";
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
这有效,但前2个渲染了很多空白。有没有concat符号写多行而忽略结束空格而不使用像渲染字符串之后的替换?
修改
using System; using
System.Collections.Generic; using
System.Linq; using System.Text;
namespace ConsoleApplication2 {
public class Test
{
public Test()
{
}
public void MyMethod()
{
string someLongString = "On top of an eager overhead weds a
pressed vat. How does a chance cage
the contract? The glance surprises the
radical wild.";
}
} }
看看它是如何正确的,虽然我的括号形成并且正在伸出(抱歉有点难以在堆叠上展示,但它正在向远处伸出)。
令人遗憾的是记事本++做得更好,当它包裹时它就在变量下面。
答案 0 :(得分:7)
只需移除空白区域即可。它可能不漂亮,但它有效:
string a = @"this is the first line
and this is the second";
请注意,第二行需要一直到左边距:
作为替代方案,你可以使用\n
字符,但是你不能使用逐字字符串(@ -prefix):
string a = "first line\nsecond line";
答案 1 :(得分:5)
没有任何形式的字符串文字允许多行字符串,但在每行的开头修剪空格,不。
答案 2 :(得分:1)
将始终包含您在多行字符串中包含的任何空格。
然而......尝试格式化你的代码:
string a = String.Format(
@"zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
{0}xxxxxxx", "GGG");
...希望看起来更好。
答案 3 :(得分:0)
解决方案是在查看此类代码时启用自动换行。这将保留格式并允许您查看整个字符串,而无需在编辑器中滚动。
您可以按 Ctrl + e , W 或选择编辑来执行此操作菜单中的/ Advanced / Word Wrap 。
答案 4 :(得分:0)
您可以在保留代码格式的同时执行此操作,假设如下:
var words = Regex.Replace(
@"lorem ipsum dolor sit amet consectetur adipiscing
elit sed feugiat consectetur pellentesque nam ac
elit risusac blandit dui duis rutrum porta tortor ut
convallis duis rutrum porta tortor ut yth convallis
lorem ipsum dolorsit amet consectetur adipiscing elit
sed feugiat consectetur pellentesque nam ac elit
risus ac blandit dui duis rutrum porta tortor ut
convallis duis rutrum porta tortor ut convallis
", @"\s+", " ");