如何将字符串数组连接成单个字符串?

时间:2013-06-11 11:54:40

标签: c# arrays string algorithm

方案: 我有数据库表中的网络名称列表,其中包含数字(1. Facebook, 2. Twitter, 3. MySpace, 4. hi5 ...),我从数据库中选择一个网络(例如2. Twitter)。

我做了什么:

string Selected = "12.FaceBook";
int k=3;
string[] myArray = new string[Selected.Length];
for (int i = 0; i < Selected.Length; i++)
{
    myArray[i] = Selected[k].ToString();
    k++;
}

并吸引了如何加入myArray并打印

DevComponents.DotNetBar.MessageBoxEx.Show("?");

我想要的:

输出为:

"Facebook""Twitter"没有数字。

7 个答案:

答案 0 :(得分:1)

这应该这样做:

string joined = string.Join("", myArray);
DevComponents.DotNetBar.MessageBoxEx.Show(joined);

如果要在连接的字符串之间放置分隔符,那么这是string.Join()的第一个参数。例如,在它们之间放置一个空格:

string joined = string.Join(" ", myArray);

但是,实际创建字符串数组的代码看起来是错误的。您是否从数据库中获取了所需网络的单个字符串,或者您是否获得了包含您自己需要解析的所有网络的单个字符串?

答案 1 :(得分:1)

如果您有"12. Facebook"之类的字符串,那么您可以使用IndexOf MethodSubstring Method轻松获取.之后的部分,如下所示:

string input = "12. Facebook";

string result = input.Substring(input.IndexOf('.') + 1)
                     .Trim();
// result == "Facebook"

答案 2 :(得分:0)

也许你需要静态字符串。加入?

var input="12. Twiiter";
var re=new Regex(@"(?<num>\d+)\.\s*(?<code>.+)");
var m=re.Match(input);
if (m.Success) Console.Write(m.Groups["code"].Value);

抱歉,

var input=new []{"12. ...","9. ..."}
var output = input.Select(x=>string.Join(x.Split(".").Skip(1),".").Trim());

答案 3 :(得分:0)

我已经尝试过,我在这里成功就是答案,只有少量添加例如Selected.Length-3 和打印输出。

这是我的代码

try
                {
                    int i;
                    string output = "";

                    string Selected = "12.FaceBook";
                    int k = 3;
                    string[] myArray = new string[Selected.Length];
                    for (i = 0; i < Selected.Length-3; i++)
                    {
                        myArray[i] = Selected[k].ToString();

                        output = output + myArray[i];
                        k++;
                    }


                    DevComponents.DotNetBar.MessageBoxEx.Show(output);
                }
                catch (Exception ee)
                {

                }

答案 4 :(得分:0)

也许只是

var companiesWithNumber = new[] { "1. Facebook", "2. Twitter", "3. MySpace" };
var companiesWithoutNumber = companiesWithNumber.Select(c => c.Split().Last());

Demo

如果你需要一个阵列:

string[] result = companiesWithoutNumber.ToArray();

答案 5 :(得分:0)

您可以使用string.Join方法加入字符串,"string".Split分割数字,string.Format添加"撇号。

var list = new[] {"1. Facebook", "2. Twitter", "3. MySpace"};

var result = string.Join(" or ",list.Select(s => string.Format("\"{0}\"", s.Split('.')[1].Trim())).ToArray());
DevComponents.DotNetBar.MessageBoxEx.Show(result);

您可以尝试here

答案 6 :(得分:-1)

使用正则表达式

string s1 = Regex.Replace(Selected, "[^A-Za-z]", "");