从单词和数字中提取值

时间:2014-09-12 18:22:57

标签: c# arrays string winforms char

嘿,我对编程很新,所以我的措辞可能不是最好的,但

我需要知道如何在文本框中显示输出,该输出仅显示来自同一文本框中单词输入的特定选定字母

例如用户输入Maria Fernandez 123456789>按下按钮,输出将> MF789

无论输入是否为大写?

private void btn2_Click(object sender, EventArgs e)

        MessageBox.Show(txtF.Text + " " + txtL.Text+" ,Right");
        txtFull.Text = txtF.Text+" "+txtL.Text;
        txtInfo.Text = txtF.Text. + txtL.Text+ txtCode.Text;

这是我正在使用的代码

3 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

string name = "Maria Fernandez 123456789";

int firstSpace = name.IndexOf(" ");
string initials = (name.Substring(0, 1) + name.Substring(firstSpace + 1, 1) + name.Substring(name.Length - 3)).ToUpper();

initials等于“MF789”

答案 1 :(得分:0)

如果你想使用默认的Split()方法,那么你也可以做空格

string name = "Maria Fernandez 123456789";
var intials = name.Split();
var finalInitials = intials[0].Substring(0, 1) + 
      intials[1].Substring(0, 1) + 
      intials[2].Substring(intials[2].Length - 3);

或者您可以指定" "像这样的Split分隔符

string name = "Maria Fernandez 123456789";
var intials = name.Split(new [] {" "},StringSplitOptions.RemoveEmptyEntries);
var finalInitials = intials[0].Substring(0, 1) + 
       intials[1].Substring(0, 1) + 
       intials[2].Substring(intials[2].Length - 3);
  

这两个结果都会产生相同的结果finalInitials =" MF789"

答案 2 :(得分:0)

假设没有不规则的数据,这里是一个单行:

s.Split(new[] {' '}).Aggregate((r, p) => r += (Char.IsNumber(p[0]) ? p.Substring(p.Length - 3) : p[0].ToString()));

编辑:缩短lambda名称,格式化。