这个问题适用于C Sharp(和Java可能:)。
当我想向控制台显示消息时,我想在每个“+”后插入一个空格。如何在不手动插入空格的情况下执行此操作?
答案 0 :(得分:12)
试试这个
var text = string.Join(" ", new[] {foo, bar, other });
答案 1 :(得分:7)
你不能,真的 - 只是明确地说出来:
Console.WriteLine(foo + " " + bar);
或
System.out.println(foo + " " + bar);
我的意思是你可以用参数array / varargs参数编写一个方法,例如(C#)
public void WriteToConsole(params object[] values)
{
string separator = "";
foreach (object value in values)
{
Console.Write(separator);
separator = " ";
Console.Write(value);
}
}
......但我个人不会。
答案 2 :(得分:5)
如果您正在寻找整理打印程序的方法,请尝试String.Format
,例如
Console.WriteLine(String.Format("{0} {1}", string1, string2));
答案 3 :(得分:3)
您可以将“+”替换为“+”。像这样:
new String("Foo+Bar").replace("+", "+ ");
答案 4 :(得分:3)
string.Join(" ", "Foo", "Bar", "Baz");
String.join(" ", "Foo", "Bar", "Baz");
这些方法中的每一种都允许连接可变数量的字符串,并且每种方法都有各种重载来传递字符串集合。
答案 5 :(得分:0)
或者在Java中,您可以使用printf
的{{1}}变体:
System.out
如果要打印多行,请务必在末尾添加“System.out.printf("%s %s", foo, bar);
”[换行符]。
答案 6 :(得分:0)
你的意思是串联串联还是只是'+'字符?在Java中,如果要在输出字符串中显示许多参数,则可以使用String.format
方法,如下所示:String.format("First: %s, second: %s, third: %s etc", param1, param2, param3)
。在我看来,它比使用'+'运算符的链式连接更具可读性。
答案 7 :(得分:0)
在 C# 中,您也可以使用 $
特殊字符来使用字符串插值,它将字符串文字标识为插值字符串
string text1 = "Hello";
string text2 = "World!";
Console.WriteLine($"{text1}, {text2}");
输出
Hello, World!
来自文档
字符串插值提供了一种比字符串复合格式化功能更易读和方便的语法来创建格式化字符串。
// Composite formatting:
Console.WriteLine("Hello, {0}! Today is {1}, it's {2:HH:mm} now.", name, date.DayOfWeek, date);
// String interpolation:
Console.WriteLine($"Hello, {name}! Today is {date.DayOfWeek}, it's {date:HH:mm} now.");
两个调用都产生相同的输出,类似于:
Hello, Mark! Today is Wednesday, it's 19:40 now.