开发者

How can I insert a blank space (" "), when I concatenate a string?

This question is for C Sharp (a开发者_开发技巧nd Java maybe :).

When I want to display a message to the console, I want to insert after each "+" a blank space. How can I do this, without inserting manually that blank space?


try this

var text = string.Join(" ", new[] {foo, bar, other });


You can't, really - just put it in explicitly:

Console.WriteLine(foo + " " + bar);

or

System.out.println(foo + " " + bar);

I mean you could write a method with a parameter array / varargs parameter, e.g. (C#)

public void WriteToConsole(params object[] values)
{
    string separator = "";
    foreach (object value in values)
    {
        Console.Write(separator);
        separator = " ";
        Console.Write(value);
    }
}

... but personally I wouldn't.


if you're looking for a way to tidy your printing routine try String.Format e.g.

Console.WriteLine(String.Format("{0} {1}", string1, string2));


In C#:

string.Join(" ", "Foo", "Bar", "Baz");

In Java:

String.join(" ", "Foo", "Bar", "Baz");

Each of these methods permits a variable number of strings to join, and each has various overloads to pass in collections of strings too.


You can replace "+" with "+ ". Something like this:

new String("Foo+Bar").replace("+", "+ ");


Do you mean a concatenation of strings or just a '+' character? In Java, if there are lot of parameters to show within an output string you can use String.format method like this: String.format("First: %s, second: %s, third: %s etc", param1, param2, param3). In my opinion it's more readable than chained concatenation with '+' operator.


In C# you can use String Interpolation as well using the $ special character, which identifies a string literal as an interpolated string

string text1 = "Hello";
string text2 = "World!";
Console.WriteLine($"{text1}, {text2}");

Output

Hello, World!

From Docs

String interpolation provides a more readable and convenient syntax to create formatted strings than a string composite formatting feature.

// 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.");

Both calls produce the same output that is similar to:

Hello, Mark! Today is Wednesday, it's 19:40 now.


Or in Java you can use the printf variant of System.out:

System.out.printf("%s %s", foo, bar);

Remember to put in a "\n" [line feed] at the end, if there are multiple lines to print.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜