Cita:
Lo curioso es que en java anda bien y en c# no, acá paso el código:Unhandled Exception: System.ArgumentOutOfRangeException: Index and length must refer to a location within the strin
g.
Parameter name: length
at System.String.Substring(Int32 startIndex, Int32 length)
at _12_STRING.Program.Main(String[] args) in /home/detectivejd/NetCoreProjects/07_String/12_STRING/Program.cs:li
ne 31
g.
Parameter name: length
at System.String.Substring(Int32 startIndex, Int32 length)
at _12_STRING.Program.Main(String[] args) in /home/detectivejd/NetCoreProjects/07_String/12_STRING/Program.cs:li
ne 31
Código C#:
Ver original
using System; namespace _12_STRING { class Program { /** * Código de: https://algoritmosjavafc.blogspot.com/2013/11/manejo-de-cadenas.html * * 12. Un grupo de inteligencia militar desea codificar los mensajes * secretos de tal forma que no puedan ser interpretados con una lectura * directa, para lo cual han establecido las siguientes reglas: a) Todo mensaje debe estar sus letras en mayúsculas. b) Reemplazar cada letra por la que sigue según abecedario, excepto Z que se deberá reemplazar con la letra A. c) reemplazar cada dígito encontrado por el siguiente numero excepto el 9 que deberá ser reemplazado por el 0. */ static void Main(string[] args) { String mensaje, cod1="", caracter; String ABC="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; String numeros="0123456789"; Console.Clear(); Console.WriteLine("Ingrese el mensaje: "); mensaje= Console.ReadLine(); mensaje= mensaje.ToUpper(); for (int i = 0; i < mensaje.Length; i++) { caracter=mensaje.Substring(i,i+1); if(caracter.Equals(" ")){ cod1=cod1+caracter; } else { for (int j = 0; j < ABC.Length; j++) { if(caracter.Equals(ABC.Substring(j,j+1))){ if(caracter.Equals("Z")){ cod1=cod1+"A"; break; } else { cod1=cod1+ABC.Substring(j+1,j+2); break; } } } for (int k = 0; k <numeros.Length; k++) { if(caracter.Equals(numeros.Substring(k,k+1))){ if(caracter.Equals("9")){ cod1=cod1+"0"; break; } else { cod1=cod1+numeros.Substring(k+1,k+2); break; } } } } } Console.WriteLine("\n MENSAJE INGRESADO: "+mensaje); Console.WriteLine("\n CÓDIGO RESULTANTE: "+cod1); } } }
Espero sus respuestas y saludos.