中3名字

时间:2014-09-22 10:40:57

标签: c# asp.net string substring

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

int len=propName.length;

StringName middle3 = (len < 3) ? null : propName.substring(len / 2, len / 2 + 2);

它返回某些名称的中间3个字母,但是如果我添加更长的名称,它就不起作用。这里的名字来自TextBox输入控件。

另外一些名字有偶数,而且并非所有名字都有5,7或9个字母,在这种情况下我该怎么做?

1 个答案:

答案 0 :(得分:2)

如果您输入了一个完整的&#39; name(此示例将获得其中间名称的中间三个字符):

  1. 如果全名的格式为First Middle Last,请使用Split()方法拆分&{39; space&#39;他们之间

  2. 获取第一个索引

  3. 中字符串值的长度
  4. 检查中间索引是否超过3个字符。如果是,请继续。如果没有,返回整个字符串

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

  6. 如果你只有一个单一名字(例如詹姆斯&#39;或者&#39; Stacey&#39;等)

    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;
       }
    }
    

    任何建议/澄清需要我很乐意提供帮助。