totitlecase primera mayuscula letra initcap first convert camelcase c# .net vb.net

c# - primera - TextInfo.ToTitleCase no funciona como se espera para cadenas de TODAS MAYÚSCULAS



uppercase c# (3)

Intentaba usar TextInfo.ToTitleCase para convertir algunos nombres al caso adecuado. funciona bien para cadenas en minúsculas y mayúsculas y minúsculas, pero para cadenas con todos los caracteres en mayúsculas, devuelve la cadena de entrada como está.
No se menciona nada sobre este comportamiento en la documentación de MSDN, ¿tiene alguna idea?


De los documentos de MSDN :

Observaciones En general, la carcasa del título convierte el primer carácter de una palabra en mayúscula y el resto de los caracteres en minúscula. Sin embargo, este método actualmente no proporciona una carcasa adecuada para convertir una palabra que está completamente en mayúscula, como un acrónimo . La siguiente tabla muestra la forma en que el método representa varias cadenas.

así que es comportamiento esperado. Primero puede minúsculas su cadena si todo está en mayúsculas, luego ejecute ToTitleCase en ella.


La documentación de MSDN dice:

En general, la carcasa del título convierte el primer carácter de una palabra en mayúscula y el resto de los caracteres en minúscula. Sin embargo, una palabra que está completamente en mayúsculas, como un acrónimo, no se convierte.

Por lo tanto, funciona según lo previsto. Pruebe TextInfo.ToTitleCase(TextInfo.ToLowerCase("STRINGINCAPS")

me gusta:

string TitleCaseString; TextInfo myTI = new CultureInfo("en-US",false).TextInfo; TitleCaseString = myTI.ToTitleCase(myTI.ToLowerCase("STRINGINCAPS"));


Sospecho que es porque se espera que las palabras en todas las mayúsculas sean abreviaturas como USA.

Por ejemplo, no esperarías que "Earthquake Hits USA" cambiara a "Earthquake Hits Usa", ¿o sí?