elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Me explican que esta sucediendo aquí!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Me explican que esta sucediendo aquí!!  (Leído 3,316 veces)
TrashAmbishion


Desconectado Desconectado

Mensajes: 756


Ver Perfil
Me explican que esta sucediendo aquí!!
« en: 11 Abril 2021, 23:43 pm »

Hola,

frase[0] = "eyes";

frase[0].Replace(frase[0].Substring(0, 1), frase[0].Substring(0, 1).ToUpper());

Lo que pretendo es poner la primera letra en mayúsculas pero en cambio me saca EyEs...

Me explican porque.

Saludos


En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: Me explican que esta sucediendo aquí!!
« Respuesta #1 en: 12 Abril 2021, 00:36 am »

Claro...

Observa, desgranando los parámetros
Código:
quien es reamplazado = frase[0].Substring(0, 1)
quien le sustituye = frase[0].Substring(0, 1).ToUpper()

frase[0].Replace(quien es remplazado, quien le sustituye)
Como quiera que el carácter a remplazar (0,1) es la 'e', y que se remplaza todas sus apariciones por 'E'... pués el resultado obtenido es correcto, pero no el deseado...

Prueba con:
Código:
frase[0] = "elefante valiente"
Verás que todas las 'e' acaban siendo mayúsculas. Con solo 2 'e' en una palabra tan corta, es posible que te cueste más verlo claro...

Si lo que buscas es poner (solo) la primera letra en mayúsculas, hay varios modos, he aquí uno de ellos:
Código:
string s = frase[0].substring(0,1).toUpper   // toma el primer caracter y lo comvierte a mayúsculas
frase[0] = s + frase[0].substring(1,frase[0].length-1)  // concatena detrás el resto de la cadena.
.



En línea

TrashAmbishion


Desconectado Desconectado

Mensajes: 756


Ver Perfil
Re: Me explican que esta sucediendo aquí!!
« Respuesta #2 en: 12 Abril 2021, 00:50 am »

Hola,

Gracias por la pronta respuesta.

Pero en teoría estoy especificando que lo que deseo modificar sera el primer carácter o no?

O substring hace una búsqueda de ese carácter en toda la cadena?

Saludos
En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: Me explican que esta sucediendo aquí!!
« Respuesta #3 en: 12 Abril 2021, 01:03 am »

No.

Tu estás haciendo un Replace.
Tus 'substring' solo señalan que se será remplazado y por quien será remplazado...
Esto es, tus substrings, son los parámetros de la orden Remplazar.

Tu estás haciendo esto:

Código:
frase[0] = "eyes";

frase[0].Replace("e", "E");
En línea

TrashAmbishion


Desconectado Desconectado

Mensajes: 756


Ver Perfil
Re: Me explican que esta sucediendo aquí!!
« Respuesta #4 en: 12 Abril 2021, 01:12 am »

Ah el replace es el de la cuestión...

Es que asumí otra cosa con el, me hice la idea que se remplazaba ese carácter nada mas..

replace("a","d")

No asumí que buscaba todas las "a" en la cadena

Vale, muchas gracias, todo bien
En línea

Danielㅤ


Desconectado Desconectado

Mensajes: 1.841


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: Me explican que esta sucediendo aquí!!
« Respuesta #5 en: 12 Abril 2021, 02:56 am »

Hola, pues si, el método Replace() reemplaza todas las coincidencias encontradas con el patrón dado.


Saludos
En línea

**Aincrad**


Desconectado Desconectado

Mensajes: 682



Ver Perfil WWW
Re: Me explican que esta sucediendo aquí!!
« Respuesta #6 en: 12 Abril 2021, 22:54 pm »

Yo lo haría así :

Código
  1. Dim Frase As String = "eyes"
  2.        Frase = Frase.Substring(0, 1).ToUpper + Frase.Remove(0, 1)
  3.  

en C#:

Código
  1. string Frase = "eyes";
  2.    Frase = Frase.Substring(0, 1).ToUpper() + Frase.Remove(0, 1);

y la salida es : "Eyes"
En línea



LastChance
Especial
*
Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: Me explican que esta sucediendo aquí!!
« Respuesta #7 en: 15 Mayo 2021, 20:26 pm »

Suponiendo que solo tengas una palabra y quieras volver mayúscula la primera letra de esa palabra, es decir, lo que haces en el ejemplo que mostraste, entonces puedes simplificar el código haciendo uso de la función: CultureInfo.InvariantCulture.TextInfo.ToTitleCase()

Código
  1. string str = "eyes";
  2. str = CultureInfo.InvariantCulture.TextInfo.ToTitleCase(str);

Si por lo contrario lo que pretendes es volver mayúscula la primera letra de la primera palabra en conjunto de palabras o frase, pues ya te han dado soluciones. Aunque yo lo haría de la siguiente manera:

Código
  1. string str = "eyes";
  2. str = $"{char.ToUpper(str.First())}{str.Remove(0, 1)}";

O de esta otra forma si además necesitas volver minúscula los demás caracteres de la palabra:

Código
  1. string str = "eyes";
  2. str = $"{char.ToUpper(str.First())}{str.Remove(0, 1).ToLower()}";

Saludos.
« Última modificación: 15 Mayo 2021, 20:30 pm por LastChance » En línea

sdfsdf
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¡MessengerFlooder 2.0 ya está aquí! « 1 2 »
Mensajería
BlackNightmare 10 10,946 Último mensaje 5 Junio 2010, 18:39 pm
por saut
¿Que significa '\0' y para que sirve/se usa?
Programación C/C++
Aikanáro Anário 6 33,491 Último mensaje 23 Enero 2013, 15:53 pm
por daniel077
Ya esta aqui wifiway 2.0.1 !!!
Wireless en Linux
orion999 2 3,120 Último mensaje 13 Octubre 2010, 22:01 pm
por luiti
Referendum en Cataluña. ¿Que está sucediendo? « 1 2 »
Foro Libre
buite 17 7,380 Último mensaje 3 Octubre 2017, 12:42 pm
por Eleкtro
No se si poner esta duda aquí...
Programación General
lordluisiv 2 2,509 Último mensaje 24 Julio 2019, 19:53 pm
por lordluisiv
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines