SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: man0 en Viernes 17 de Diciembre de 2010, 22:09

Título: Conversion a String y caracteres especiales
Publicado por: man0 en Viernes 17 de Diciembre de 2010, 22:09
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#
  1.  
  2. ?using System;
  3.  
  4. using System.Collections;
  5.  
  6.  
  7.  
  8. namespace Prueba
  9.  
  10. {
  11.  
  12.     class Class1
  13.  
  14.     {
  15.  
  16.         ArrayList a = new ArrayList();
  17.  
  18.  
  19.  
  20.         public string getArray() {        
  21.  
  22.             return a.ToString();
  23.  
  24.         }
  25.  
  26.  
  27.  
  28.         public void setArray()
  29.  
  30.         {
  31.  
  32.             a.Add("a");
  33.  
  34.         }
  35.  
  36.         static void Main()
  37.  
  38.         {
  39.  
  40.             Class1 c = new Class1();
  41.  
  42.             c.setArray();
  43.  
  44.             Console.WriteLine(c.getArray());          
  45.  
  46.         }
  47.  
  48.  
  49.  
  50.     }
  51.  
  52.    
  53.  
  54.    
  55.  
  56. }
  57.  
  58.  

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.
Título: Re: Conversion a String y caracteres especiales
Publicado por: gabio2 en Viernes 17 de Diciembre de 2010, 22:50
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#
  1.  
  2. ?using System;
  3.  
  4. using System.Collections;
  5.  
  6.  
  7.  
  8. namespace Prueba
  9.  
  10. {
  11.  
  12.     class Class1
  13.  
  14.     {
  15.  
  16.         ArrayList a = new ArrayList();
  17.  
  18.  
  19.  
  20.         public string getArray() {        
  21.  
  22.             return a[0].ToString(); // Te falto poner el Indice que quieres imprimir..
  23.  
  24.         }
  25.  
  26.  
  27.  
  28.         public void setArray()
  29.  
  30.         {
  31.  
  32.             a.Add("a");
  33.  
  34.         }
  35.  
  36.         static void Main()
  37.  
  38.         {
  39.  
  40.             Class1 c = new Class1();
  41.  
  42.             c.setArray();
  43.            //Yo aquí utilizaría un for each..  por si son N elementos.. pero bueno.. :).. ya tu decides.. saludos.. :)
  44.             Console.WriteLine(c.getArray());          
  45.  
  46.         }
  47.  
  48.  
  49.  
  50.     }
  51.  
  52.    
  53.  
  54.    
  55.  
  56. }
  57.  
  58.  

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.
Título: Re: Conversion a String y caracteres especiales
Publicado por: man0 en Viernes 17 de Diciembre de 2010, 23:52
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#
  1. using System;
  2.  
  3. using System.Collections;
  4.  
  5.  
  6.  
  7. namespace Prueba
  8.  
  9. {
  10.  
  11.     class Class1
  12.  
  13.     {
  14.  
  15.         ArrayList a = new ArrayList();
  16.  
  17.  
  18.  
  19.         public String getArray() {
  20.  
  21.             String temp = "";  
  22.  
  23.             foreach (object i in a){
  24.  
  25.                
  26.  
  27.                 temp = temp + i;
  28.  
  29.             }
  30.  
  31.             return temp;
  32.  
  33.         }
  34.  
  35.  
  36.  
  37.         public void setArray()
  38.  
  39.         {
  40.  
  41.             a.Add("a");
  42.  
  43.         a.Add("b");
  44.  
  45.         }
  46.  
  47.         static void Main()
  48.  
  49.         {
  50.  
  51.             Class1 c = new Class1();
  52.  
  53.             c.setArray();
  54.  
  55.             Console.WriteLine(c.getArray());          
  56.  
  57.         }
  58.  
  59.  
  60.  
  61.     }
  62.        
  63.  
  64. }
  65.  
  66.  

Y la salida es:  ab
Título: Re: Conversion a String y caracteres especiales
Publicado por: man0 en Sábado 18 de Diciembre de 2010, 00:52
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:
Título: Re: Conversion a String y caracteres especiales
Publicado por: LapizTolita en Sábado 8 de Enero de 2011, 03:26
Te recomiendo que sobrecargues el método ToString()
Código: C#
  1.  
  2.         public override string ToString()
  3.         {
  4.             string s="";
  5.             foreach(var x in a)
  6.                 s+=x;
  7.             return s;
  8.         }
  9.  
  10.  
Y después la llamas asi:
Código: C#
  1.  
  2.  Console.WriteLine(c);
  3.  
  4.