C# 中间3个字符的名称

C# 中间3个字符的名称,c#,asp.net,string,substring,C#,Asp.net,String,Substring,我需要在c#字符串操作中查找名称中间3个字母的帮助,我的代码是: int len=propName.length; StringName middle3 = (len < 3) ? null : propName.substring(len / 2, len / 2 + 2); int len=propName.length; StringName middle3=(len

我需要在c#字符串操作中查找名称中间3个字母的帮助,我的代码是:

int len=propName.length;

StringName middle3 = (len < 3) ? null : propName.substring(len / 2, len / 2 + 2);
int len=propName.length;
StringName middle3=(len<3)?null:propName.substring(len/2,len/2+2);
对于某些名称,它返回中间的3个字母,但是如果我添加一个较长的名称,它将不起作用。此处的名称来自文本框输入控件


此外,有些姓名有偶数,并非所有姓名都有5、7或9个字母,在这种情况下我该怎么办?

如果您输入的是“全名”(本例将获得中间名的中间三个字符):

  • 如果全名的格式为
    First Middle Last
    ,请使用
    Split()
    方法在它们之间的“
    空格
    ”上进行拆分

  • 获取第一个索引中字符串值的长度

  • 检查中间索引是否超过3个字符。如果是,请继续。如果不是,则返回整个字符串

  • 使用
    myThree.Substring((len/2)-1,3)
    获取中间的三个字符,以获取neext三个字母

  • 如果你只有一个名字(如“詹姆斯”或“斯泰西”等)


    如需任何建议/澄清,我将乐意提供帮助

    请给出一个再现问题的完整示例,例如添加
    string propName=“name”并解释您希望在这些情况下看到什么。在纸上写几个例子真的很有帮助。这里绝对没有足够的信息来回答这个问题。好的,我正在创建一个asp.net web应用程序,在我的btn中,我声明String name=txtName.Text;并将我的值传递给我的类,该类将执行字符串操作。我的方法是publicstringgenerateMidle3(),它有一个返回方法。如果用户输入Abdul,程序需要输出bdu,或者如果用户输入Govendr,则需要输出ven。但是像利雅得这样的名字,它怎么能输出中间的3个呢?会发生什么?在
    Riyadh
    中,如果没有干净的中间-
    iya
    yad
    ,你会把什么列为中间三个字母?Riyadh-在这种情况下,你想看到哪三个字母?根据你的第4点,你可能是指
    myThree.Substring((len/2)-1,3)
    @Corak,确实如此。干杯谢谢你,非常感谢你,科拉克先生,非常感谢你的帮助,我一定会的。再次感谢如果这有效/帮助了你,请记住通过接受它作为回答来帮助他人(单击左侧的勾号);P
    String name = "James";
    name = name.Replace(' ',''); //removes spaces (if any entered)
    int len = string.Length;
    if(len%2 ==0)
    {
      //then it is an even number 
     len--; //if you want the 'slightly' left-er part. Else remove this if statement
    }
    if(len>=3)
    {
    String myThree = myThree.Substring(len-1,3);
    }
    else
    {
       if(len==0)
       {
          Messagebox.Show("No name entered");
       }
       else
       {
        myThree= name;
       }
    }