CLR: .Net / Mono / Boo / Otros CLR > C#
Conversion a String y caracteres especiales
(1/1)
man0:
Hola amigos foreros. En estos días me he propuesto en implementar un analizador léxico (Scanner) para un lenguaje de conjuntos (A U B, etc.) mi curso de Lenguajes y traductores.
Pero tengo un ligero inconveniente, que lo resumiré en este ejemplo de código:
--- Código: C# --- ?using System; using System.Collections; namespace Prueba { class Class1 { ArrayList a = new ArrayList(); public string getArray() { return a.ToString(); } public void setArray() { a.Add("a"); } static void Main() { Class1 c = new Class1(); c.setArray(); Console.WriteLine(c.getArray()); } } }
Resulta que el método getArray() no me está funcionando como quiero, en vez de salirme un "a" por la consola, me tira esto:
"System.Collections.ArrayList"
¿En qué estaré mal?
Otra muy pequeña: cómo puedo incluir caracteres especiales en mi código, por ejemplo la "u" de union en conjuntos, así como el símbolo de intersección, complemento, pertenencia, etc., no creo que me sirva copiar y pegar porque ya probé y me daba sólo errores :D
Muchas gracias por sus comentarios.
gabio2:
Checa otra vez el código ya te lo corregi..
--- Cita de: "man0" ---Hola amigos foreros. En estos días me he propuesto en implementar un analizador léxico (Scanner) para un lenguaje de conjuntos (A U B, etc.) mi curso de Lenguajes y traductores.
Pero tengo un ligero inconveniente, que lo resumiré en este ejemplo de código:
--- Código: C# --- ?using System; using System.Collections; namespace Prueba { class Class1 { ArrayList a = new ArrayList(); public string getArray() { return a[0].ToString(); // Te falto poner el Indice que quieres imprimir.. } public void setArray() { a.Add("a"); } static void Main() { Class1 c = new Class1(); c.setArray(); //Yo aquí utilizaría un for each.. por si son N elementos.. pero bueno.. :).. ya tu decides.. saludos.. :) Console.WriteLine(c.getArray()); } } }
Resulta que el método getArray() no me está funcionando como quiero, en vez de salirme un "a" por la consola, me tira esto:
"System.Collections.ArrayList"
¿En qué estaré mal?
Otra muy pequeña: cómo puedo incluir caracteres especiales en mi código, por ejemplo la "u" de union en conjuntos, así como el símbolo de intersección, complemento, pertenencia, etc., no creo que me sirva copiar y pegar porque ya probé y me daba sólo errores :D
Muchas gracias por sus comentarios.
--- Fin de la cita ---
man0:
Gracias gabio2!, me aclaraste que el método ToString sirve para convertir sólo un caracter a la vez. Pero mi intención era convertir todo el ArrayList de una vez a un String. Masomenos lo conseguí de esta forma:
--- Código: C# ---using System; using System.Collections; namespace Prueba { class Class1 { ArrayList a = new ArrayList(); public String getArray() { String temp = ""; foreach (object i in a){ temp = temp + i; } return temp; } public void setArray() { a.Add("a"); a.Add("b"); } static void Main() { Class1 c = new Class1(); c.setArray(); Console.WriteLine(c.getArray()); } } }
Y la salida es: ab
man0:
También encontré la forma de incluir caracteres especiales unicode en el código, se hace de la forma:
"u<digito><digito><digito><letrar>" , donde <digito> y <letra> son los numeros y letras que corresponden al codigo unicode del caracter a usar. :good:
LapizTolita:
Te recomiendo que sobrecargues el método ToString()
--- Código: C# --- public override string ToString() { string s=""; foreach(var x in a) s+=x; return s; } Y después la llamas asi:
--- Código: C# --- Console.WriteLine(c);
Navegación
Ir a la versión completa