0

场景:我在数据库表中有带有数字的网络名称列表,例如(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"没有数字。

4

7 回答 7

2

这应该这样做:

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

如果你想在连接的字符串之间放置一个分隔符,那就是string.Join(). 例如,在它们之间放置一个空格:

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

但是,您首先实际创建字符串数组的代码看起来是错误的。您是从数据库中获取所需网络的单个字符串,还是获取包含您必须自己解析的所有网络的单个字符串?

于 2013-06-11T11:57:26.813 回答
1

如果您有这样的字符串,那么您可以在使用IndexOf 方法Substring 方法"12. Facebook"之后轻松获取该部分,如下所示:.

string input = "12. Facebook";

string result = input.Substring(input.IndexOf('.') + 1)
                     .Trim();
// result == "Facebook"
于 2013-06-11T12:00:31.773 回答
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)
                {

                }
于 2013-06-11T12:01:24.557 回答
0

也许只是

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

演示

如果你需要一个数组:

string[] result = companiesWithoutNumber.ToArray();
于 2013-06-11T12:02:05.353 回答
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);

你可以在这里试试。

于 2013-06-11T12:02:18.197 回答
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());
于 2013-06-11T11:58:36.030 回答
-1

使用正则表达式

string s1 = Regex.Replace(Selected, "[^A-Za-z]", "");
于 2013-06-11T12:03:56.127 回答