me parece extraño el comportamiento de String.Substring

12/08/2007 - 15:26 por Carmelo J. Morales Muñoz | Informe spam
¡Hola!

Resulta que si tengo una variable string algo como esto:



String sVariable = "abcde"


Stirng sNueva = s.Substring (0,15)




Me da error al extraer subcadena ya que su longitud es menor de 15, me da
error de índice. ¿no debería dar este error y extraer solo hasta la longitud
que exista sin pasarse claro está de la que le indico?

gracias1

Preguntas similare

Leer las respuestas

#1 Raymond
12/08/2007 - 17:20 | Informe spam
Seguro que vienes de Visual Foxpro, donde funciona asi.

Raymond


"Carmelo J. Morales Muñoz" escribió en el mensaje
news:
¡Hola!

Resulta que si tengo una variable string algo como esto:



String sVariable = "abcde"


Stirng sNueva = s.Substring (0,15)




Me da error al extraer subcadena ya que su longitud es menor de 15, me da
error de índice. ¿no debería dar este error y extraer solo hasta la
longitud que exista sin pasarse claro está de la que le indico?

gracias1
Respuesta Responder a este mensaje
#2 Carmelo J. Morales Muñoz
12/08/2007 - 22:36 | Informe spam
Vengo de delphi y antes de pascal, y me parece extraño el comportamiento en
c# de esa función.
Respuesta Responder a este mensaje
#3 Antonio Rodriguez
13/08/2007 - 03:31 | Informe spam
Puedes envolverla en otra funcion de usuario que calcule basado en la
longitud del string.


"Carmelo J. Morales Muñoz" escribió en el mensaje
news:
Vengo de delphi y antes de pascal, y me parece extraño el comportamiento
en c# de esa función.
Respuesta Responder a este mensaje
#4 Octavio Hernandez
13/08/2007 - 09:52 | Informe spam
Carmelo,

Efectivamente, en Delphi era donde lo hacíamos así.
Fíjate que string.Substring() tiene dos variantes, una a la que llamas
pasando solamente la posición de inicio y coge desde esa posición HASTA EL
FINAL (que es lo que quieres tú en este caso), y la otra, en la que hay que
pasar también cuántos caracteres quieres y que protesta si la cadena de
entrada no tiene la logitud necesaria.

Slds - Octavio


"Carmelo J. Morales Muñoz" wrote in message
news:
Vengo de delphi y antes de pascal, y me parece extraño el comportamiento
en c# de esa función.
Respuesta Responder a este mensaje
#5 Juan Diego Bueno
15/08/2007 - 15:02 | Informe spam
Bueno, que se hiciera en delphi así no significa que esté mal como se hace
en C#. De hecho, no debería juzgarse como mala una función por el hecho de
ser estricta en su funcionamiento, como lo es ésta.

La llamada como tu la quieres, es así de simple:

String sVariable = "abcde"
sNueva= (sVariable.Length<) ? sVariable : sVariable.Substring(0,15);

Saludos

Juan Diego Bueno www.moondance.tk

"Carmelo J. Morales Muñoz" escribió en el mensaje
news:
Vengo de delphi y antes de pascal, y me parece extraño el comportamiento
en c# de esa función.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida