如何修复 Join(" ") 不向连接的字符串添加空格

当我尝试 Join() 一个包含单词的数组并尝试向其中添加一个空格时,空格似乎被遗漏了,知道为什么吗?


一些背景信息,当我试图颠倒给我的一串单词时


“hi my name is”应该变成“is name my hi”


public static string ReverseWords(string text)

{

    string[] words = text.Split(' ');

    string s = "";


    for (int i = words.Length - 1; i >= 0; i--)

    {

       s+= string.Join(" ", words [i]);

    }

    return s;

}

预期的结果是:“world!hello” 但它是:“world!hello”


如您所见,我缺少世界之间的空间!和你好。


有任何想法吗?


慕田峪7331174
浏览 175回答 4
4回答

偶然的你

您Join一次只调用一个单词,使用接受参数数组的重载。加入单个项目将始终只返回该项目 - 没有其他东西可以加入它。取而代之的是,只需以相反的顺序用所有单词调用它:public static string ReverseWords(string text){    string[] words = text.Split(' ');    return string.Join(" ", words.Reverse());}

隔江千里

Join 将数组的元素与指定的分隔符组合在一起,但您要分别添加每个元素。所以没有添加空间。string.Join(" ", words.Reverse());

不负相思意

string.Join() 旨在处理字符串列表,在每个字符串之间放置分隔符 char。您一次只给它一个,因此没有分隔符。尝试这个:public static string ReverseWords(string text){    string[] words = text.Split(' ');    return string.Join(" ", words.Reverse());}

倚天杖

对不起,我花了一段时间,我还是个初学者。但是 .Reverse() 函数不是它,因为它会将单词中的每个字符都倒转,这不是我的目标。诀窍如下:public static string ReverseWords(string text){  string[] words = text.Split(' ');string s = words[words.Length - 1];for (int i = words.Length - 2; i >= 0; i--){  s+= " " + words[i];}return s; }}当我将它复制到 VS 时,我一直尝试在在线环境中进行此练习,我可以通过慢慢调试来发现问题所在。
打开App,查看更多内容
随时随地看视频慕课网APP