我有一个字符串。例如:
Eternal (woman)
我想把它Eternal (Woman)
。
我如何在C#中做到这一点?
如果我按字符串[] mean = inf.Meaning.Split('(');
分割,那么我无法获得(
。
答案 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
应该工作,而不是测试。