我需要帮助找到c#字符串操作中名字的中间3个字母,我的代码是:
int len=propName.length;
StringName middle3 = (len < 3) ? null : propName.substring(len / 2, len / 2 + 2);
它返回某些名称的中间3个字母,但是如果我添加更长的名称,它就不起作用。这里的名字来自TextBox输入控件。
另外一些名字有偶数,而且并非所有名字都有5,7或9个字母,在这种情况下我该怎么做?
答案 0 :(得分:2)
如果您输入了一个完整的&#39; name(此示例将获得其中间名称的中间三个字符):
如果全名的格式为First Middle Last
,请使用Split()
方法拆分&{39; space
&#39;他们之间
获取第一个索引
检查中间索引是否超过3个字符。如果是,请继续。如果没有,返回整个字符串
使用myThree.Substring((len/2)-1,3)
获取三个中间字符以获取neext三个字母。
如果你只有一个单一名字(例如詹姆斯&#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;
}
}
任何建议/澄清需要我很乐意提供帮助。