Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda Char array a String, error espacios en blanco al imprimir palabra en String

Estas en el tema de Ayuda Char array a String, error espacios en blanco al imprimir palabra en String en el foro de Java en Foros del Web. Bueno he estado teniendo un problema con este programa desde hace ya unas horas, el problema yace en que el arreglo de caracteres no lo ...
  #1 (permalink)  
Antiguo 23/09/2011, 01:13
 
Fecha de Ingreso: septiembre-2011
Ubicación: Agua Dulce
Mensajes: 8
Antigüedad: 12 años, 7 meses
Puntos: 0
Pregunta Ayuda Char array a String, error espacios en blanco al imprimir palabra en String

Bueno he estado teniendo un problema con este programa desde hace ya unas horas, el problema yace en que el arreglo de caracteres no lo puedo convertir a un string y no se por que, quisiera que me ayudaran, gracias.

El siguiente es el programa.



/*
Escribir un programa que emplee un argumento de la línea de comandos para realizar
una conversión decimal a hexadecimal; es decir, el número decimal se introducirá en la
línea de comandos, siguiendo al nombre del programa.

Ej:
C:> decihex 128 111
Deci= 128 Hex= 80
Deci= 111 Hex= 6F
C:>

Nota 1: Al igual que en el ejemplo, el programa deberá ser capaz de convertir varios
números en una llamada.
Nota 2: En caso de que el programa no reciba argumentos deberá devolver un
mensaje de error.

*/

import java.io.*;
import java.lang.*;

public class yogi_CMD_Conversion
{
String command;
char cad[];
int tamaño;
int cont;
int filas[];
String palabra[];
int otro;
int pal_cont;
char word []=new char[otro];
int num_hex[]=new int [1];

public yogi_CMD_Conversion (String command)
{
this.command = command;
this.cad = command.toCharArray();
this.palabra = new String[cont];
}

public static String command ()throws IOException
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

System.out.print("C:/ ");
return in.readLine();
}

public void largo_matricez()//define lo largo de la palabra pro sin espacios
{
for(int i=0;i<cad.length;i++)
{
char pivote=cad[i];
this.filas=new int [cont+1];
int cont2 = 0;
int tam=0;

if(pivote ==' ')
{
cont++;
cont2++;
}
else if(pivote!=' ')
{
tamaño++;
tam++;
}
}
}
public void largo_vector()//define vector con palabra dentro y cada uno de los largos de la variable palabra
{

// System.out.print("\nconta: "+conta);
pal_cont=0;
for(int i=0;i<cad.length;i++)
{
char pivote=cad[i];
this.word=new char [otro+1];
this.palabra=new String[pal_cont+1];
if(pivote !=' ')
{
//System.out.print("\nconto:"+conto);
word[otro]=pivote;
System.out.print(" \n"+word[otro]);

otro++;

}
else if(pivote ==' ')
{
palabra[pal_cont] = String.valueOf(word);
pal_cont++;
otro=0;
}
}
}

public void convertir_letra()
{
for(int i=0;i<cont;i++)
{
System.out.println((i+1)+".-Palabra: "+palabra[i]);
}

}



public static void main(String [] args) throws IOException
{

BufferedReader in=new BufferedReader (new InputStreamReader (System.in));

String letra= yogi_CMD_Conversion.command();

yogi_CMD_Conversion obj=new yogi_CMD_Conversion(letra);

obj.largo_matricez();
obj.largo_vector();
obj.convertir_letra();
}
}

Última edición por moradomx; 23/09/2011 a las 01:14 Razón: error de dedo
  #2 (permalink)  
Antiguo 23/09/2011, 11:02
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Ayuda Char array a String, error espacios en blanco al imprimir palabra en

¿Debes hacerlo de esa manera obligatoriamente o puedes hacerlo como desees?
http://www.java-tips.org/java-se-tip...xadecimal.html

Es tan simple como:
Código Javascript:
Ver original
  1. int i = 42;
  2. String hexstr = Integer.toString(i, 16);
  #3 (permalink)  
Antiguo 23/09/2011, 12:22
 
Fecha de Ingreso: septiembre-2011
Ubicación: Agua Dulce
Mensajes: 8
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Ayuda Char array a String, error espacios en blanco al imprimir palabra en

Gracias pro no me ayudo en nada tu comentario, mira lo que pasa es que en este metodo

public void largo_vector()
{


pal_cont=0;
for(int i=0;i<cad.length;i++)
{
char pivote=cad[i];
this.word=new char [otro+1];
this.palabra=new String[pal_cont+1];
if(pivote !=' ')
{

word[otro]=pivote;


otro++;


}
else if(pivote ==' ')
{
palabra[pal_cont] = String.valueOf(word);
pal_cont++;
otro=0;
}
}
}

ya que este metodo debe de secomponer una frase en sus palabras y las palabras en caracteres, osea solo les tengo que quitar ala frase sus espacios, pro al momento que el programa encuentre un espacio, con las lletras que tenga la variable word se cree un String, pro al momento de converirtirlo, e imprimirlo en este otro metodo.


public void convertir_letra()
{
for(int i=0;i<cont;i++)
{
System.out.println((i+1)+".-Palabra: "+palabra[i]);
}

}

me imprime no se que cosas.

C:/ bin

b
i
n

1.-Palabra: [C@19f953d


BUILD SUCCESSFUL (total time: 3 seconds)

mi pregunta es como le hago para que eso no me salga si no la palabra bin pro ya en String
  #4 (permalink)  
Antiguo 23/09/2011, 14:44
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Ayuda Char array a String, error espacios en blanco al imprimir palabra en

¿No se supone que tu programa lo que tiene que hacer es pasar de decimal a hexadecimal?
¿O que es lo que se supone que tiene que hacer?

Cita:
Escribir un programa que emplee un argumento de la línea de comandos para realizar
una conversión decimal a hexadecimal; es decir, el número decimal se introducirá en la
línea de comandos, siguiendo al nombre del programa.
  #5 (permalink)  
Antiguo 23/09/2011, 15:06
 
Fecha de Ingreso: septiembre-2011
Ubicación: Agua Dulce
Mensajes: 8
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Ayuda Char array a String, error espacios en blanco al imprimir palabra en

bueno esa es la funcion principal, pro mira el programa va asi, yo solicitare un texto como en el ejemplo.

C:\ bintohex 128 111

bueno lo que el pograma me va a imprimir en primer paso es C:\

y yo intrducire bintohex 128 111

entonces ya el cuerpo del programa debe descomponer la frase en sus palabras
y cada espacio quiere decir que empieza un nuevo comando o numero osea el bintohex
me especifica que que tego que converitr 128 a hexadecimal y el 111 a hexadecimal tambien pro por separados, en pocas palabras tengo crear un CMD que me separeel comando y los parametros en distintos arreglos de cadena
  #6 (permalink)  
Antiguo 23/09/2011, 15:41
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Respuesta: Ayuda Char array a String, error espacios en blanco al imprimir palabra en

para quitar los espacios usa el metodo .trim() en una cadena, o en un char convertido a cadena con un to String().trim()...... para separar por espacios usa split() en una cadena la cual genera un arreglo con todas las palabras divididas por lo que le hayas dicho (en este caso espacios), para separar la palabra en caracteres pues usat To arrayChar o algo asi....

mira te dejo el link de mi tema, yo estoy lidiando con algo similar y hay partes en la que hago lo que ti quieres, separar palabras y mostrarlas sin espacios...

http://www.forosdelweb.com/f45/limpi...seados-943407/

sobre lo que dice el titulo si tienes un arreglo de caracteres recorrelo con un for y dentro del for usas String palabra = palabra + caracter(i); ó String palabra += caracter(i); que es lo mismo...

***EDITO***
A cabo de leer tu respuesta mas nueva, y efectivamente separar lo haces con el split en mi tema tengo un metodo que incluso trata de validar palabras, y si me peudes ayudar con el problemilla que yo tengo te lo agradesco pues igual que tu básicamente necesito identificar comandos...
  #7 (permalink)  
Antiguo 23/09/2011, 18:02
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Ayuda Char array a String, error espacios en blanco al imprimir palabra en

O yo he malinterpretado el mandato o lo haz hecho tu:
Cita:
Escribir un programa que emplee un argumento de la línea de comandos para realizar
una conversión decimal a hexadecimal; es decir, el número decimal se introducirá en la
línea de comandos, siguiendo al nombre del programa.

Ej:
C:> decihex 128 111
Deci= 128 Hex= 80
Deci= 111 Hex= 6F
C:>
El programa no imprimirá C:> ... etc, eso fue un ejemplo de la ejecución del programa (una muy mala por cierto).

Creo que se refieren a esto:
Código javascript:
Ver original
  1. public class DecToHex {
  2.     public static void main(String[] args) {
  3.         if(args.length < 1) {
  4.             System.err.println("No ha dado ningun numero");
  5.         } else {
  6.             for(int i = 0; i < args.length; i++) {
  7.                 System.out.println("Decimal: " + args[i] + " - Hex: " + Integer.toString(Integer.valueOf(args[i]), 16));
  8.             }
  9.         }
  10.     }
  11. }

Lo ejecutarias de la siguiente manera en la linea de comandos:
java DecToHex 127 111 101

Etiquetas: char, conversion, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:31.