如何在C#中拆分字符串

时间:2010-08-17 11:57:54

标签: c# string

我有一个字符串。例如:

Eternal (woman)

我想把它Eternal (Woman)

我如何在C#中做到这一点?

如果我按字符串[] mean = inf.Meaning.Split('(');分割,那么我无法获得(

6 个答案:

答案 0 :(得分:6)

您的示例数据根本不需要拆分以获得所需的结果:

string foo = "Eternal (woman)";
string bar = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(foo);

Console.WriteLine(bar);    // "Eternal (Woman)"

您的真实数据有何不同?你真的需要因某种原因拆分字符串吗?

答案 1 :(得分:1)

试试这个:

class Program
{
    static void Main()
    {
        string str = "Eternal (woman)";
        string[] s = str.Split('(');

        string newString = string.Empty;
        foreach (string sUpper in s)
        {
            newString += UppercaseFirst(sUpper);
        }
        newString = newString.Replace(" " ," (");
    }

    static string UppercaseFirst(string s)
    {
        // Check for empty string.
        if (string.IsNullOrEmpty(s))
        {
            return string.Empty;
        }
        // Return char and concat substring.
        return char.ToUpper(s[0]) + s.Substring(1);
    }
}

你也可以这样做:

"Eternal (woman)".Replace('w','W');

答案 2 :(得分:1)

您无需拆分。您的示例数据中唯一发生的事情是w已被大写。因此,这可以做你想要的:

"Eternal (woman)".Replace('w', 'W');

但我确实敦促你更新这个问题;添加一些上下文。

答案 3 :(得分:0)

查看String类的方法。也许这将有助于确定您想要做什么。

答案 4 :(得分:0)

类似的东西:

 string breakMe =   "Eternal (woman)";
 string [] split = breakMe.Split( ' ' );

会做你想要的。

还有其他选项,其中一个选项是regex

 string[] lines = Regex.Split(breakMe, "FANCY REGEX" );

答案 5 :(得分:0)

我认为最好的方法是将其拆分为数组,而不是修剪和大写第一个字符。

public static string doStaffSplit(string s) {

  StringBuilder sb = new StringBuilder();

  foreach(string word in s.Spilt('(') {
      sb.Append(String.format("({0}",CultureInfo.CurrentCulture.TextInfo.ToTitleCase(word.Trim()));

  }

 return sb.ToString();

}

要大写

CultureInfo.CurrentCulture.TextInfo.ToTitleCase(“string”)'// res String

应该工作,而不是测试。