• Domingo 28 de Abril de 2024, 06:44

Autor Tema:  Conversion a String y caracteres especiales  (Leído 2399 veces)

man0

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Conversion a String y caracteres especiales
« en: Viernes 17 de Diciembre de 2010, 22:09 »
0
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.

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re: Conversion a String y caracteres especiales
« Respuesta #1 en: Viernes 17 de Diciembre de 2010, 22:50 »
0
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.
@gabio87

man0

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Conversion a String y caracteres especiales
« Respuesta #2 en: Viernes 17 de Diciembre de 2010, 23:52 »
0
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

man0

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Conversion a String y caracteres especiales
« Respuesta #3 en: Sábado 18 de Diciembre de 2010, 00:52 »
0
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

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re: Conversion a String y caracteres especiales
« Respuesta #4 en: Sábado 8 de Enero de 2011, 03:26 »
0
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.