PDA

Ver la versión completa : [Ayuda] Programación Java



nakio
30/05/2009, 02:03
Hola a todos, a ver si me podéis echar una mano porque son ya las 2 de la madrugada y no doy a basto.
Soy incapaz de localizar a mi compañero de práctica y tengo que entregar mañana a las 12 de la mañana y después de casi 24 horas ingeniándomelas para programar un algoritmo de Dijkstra no doy más de mí.

Al gañan de mi compañero le queda lo siguiente pero como no me he encargado de la parte de manejo de fichero y de strings no me empano, a parte de que a estas horas no me se ni mi nombre.

<-------Aqui la parte importante------->

Tengo que coger un String cualquiera y eliminar lo que se encuentre entre paréntesis incluidos los paréntesis, se que es una mierda, pero entre que acabo lo que me queda y demás no puedo dedicarme a investigar por lo que solicito vuestra ayuda.
Ejemplo:
String inicial: "Cuatro Vientos, Las Aguilas, Fanjul, Aluche (Correspondecias L3), Laguna (Correspondencias L1, L10), Embajadores (Correspondencias L6)"

String final: "Cuatro Vientos, Las Aguilas, Fanjul, Aluche, Laguna, Embajadores"

Cualquier ayuda será bien recibida. Muchas gracias de antemano :(

Saludos, Nakio.

nandove
30/05/2009, 02:17
Hola a todos, a ver si me podéis echar una mano porque son ya las 2 de la madrugada y no doy a basto.
Soy incapaz de localizar a mi compañero de práctica y tengo que entregar mañana a las 12 de la mañana y después de casi 24 horas ingeniándomelas para programar un algoritmo de Dijkstra no doy más de mí.

Al gañan de mi compañero le queda lo siguiente pero como no me he encargado de la parte de manejo de fichero y de strings no me empano, a parte de que a estas horas no me se ni mi nombre.

<-------Aqui la parte importante------->

Tengo que coger un String cualquiera y eliminar lo que se encuentre entre paréntesis incluidos los paréntesis, se que es una mierda, pero entre que acabo lo que me queda y demás no puedo dedicarme a investigar por lo que solicito vuestra ayuda.
Ejemplo:
String inicial: "Cuatro Vientos, Las Aguilas, Fanjul, Aluche (Correspondecias L3), Laguna (Correspondencias L1, L10), Embajadores (Correspondencias L6)"

String final: "Cuatro Vientos, Las Aguilas, Fanjul, Aluche, Laguna, Embajadores"

Cualquier ayuda será bien recibida. Muchas gracias de antemano :(

Saludos, Nakio.


Asi a bote pronto, se me ocurre que te crees una pequeña rutina que usando el metodo split de la clase string, vaya detectando el caracter "(" guarde en una cadena auxiliar lo que hay antes, sigue buscando esta vez por el caracter ")" y recorta la cadena, sigue metiendo en la cadena auxiliar todo lo que encuentres hasta una nueva cadena "(" y asi sucesivamente hasta llegar al final de la cadena...

Puedes hacelo con el metodo Split de la clase String o, recuerda que cualquier String se puede tratar como un array de Char, lo metes en un bucle que lo almacene todos los char concatenados en un string y con un if que se salte todo lo que este entre '(' y ')' hasta final del array.

espero que te sirva de ayuda.

nakio
30/05/2009, 02:33
Ok, pillo tu idea. Voy a ver si en un rato puedo hacerme un método de prueba.

Saludos y gracias, Nakio.

nandove
30/05/2009, 02:57
tambien ando con algo de sueño... pero creo que seria algo parecido a esto:


String cadenaFinal = new String();
boolean excluir = false;
String cadena = new String();
cadena = "Cuatro Vientos, Las Aguilas, Fanjul, Aluche (Correspondecias L3), Laguna (Correspondencias L1, L10), Embajadores (Correspondencias L6)";
int a = cadena.length();
for(int i = 0; i < a ; i++){
if(cadena.charAt(i) == '(' ){
excluir = true;
}
if (cadena.charAt(i) == ')' ){
excluir = false;
}
if(!excluir){
cadenaFinal = cadenaFinal + cadena.charAt(i);
}
}

nakio
30/05/2009, 03:03
Bffff muchas gracias nando, te debo una.

Saludos, Nakio.

nandove
30/05/2009, 03:20
Bffff muchas gracias nando, te debo una.

Saludos, Nakio.

XD me he equivocado en una cosa:


String cadenaFinal = new String();
boolean excluir = false;
String cadena = new String();
cadena = "Cuatro Vientos, Las Aguilas, Fanjul, Aluche (Correspondecias L3), Laguna (Correspondencias L1, L10), Embajadores (Correspondencias L6)";
int a = cadena.length();
for(int i = 0; i < a ; i++){
if(cadena.charAt(i) == '(' ){
excluir = true;
}
if(!excluir){
cadenaFinal = cadenaFinal + cadena.charAt(i);
}
if (cadena.charAt(i) == ')' ){
excluir = false;
}

}

Si no lo haces así el resultado no será perfecto ;) te dejaria los cierre de parentesis

nakio
30/05/2009, 03:30
Gracias gracias gracias!

Saludos, Nakio.

ChUKii
31/05/2009, 10:01
Bueno jeje llego tarde, pero si, eso es, muy buena ayuda nandove :brindis:

nakio
31/05/2009, 10:54
Hi, si que funcionó. Mi "compañero" no ha dado señales de vida y me ha tocado hacer un tochaco considerable, dormí tres horillas ese día pero me vinieron de miedo ya que no daba una la noche del viernes, pero bueno pude entregar!

Gracias por todo!

Saludos, Nakio.

Kurraudo
31/05/2009, 13:08
XD me he equivocado en una cosa:



Si no lo haces así el resultado no será perfecto ;) te dejaria los cierre de parentesis
¿Otro usuario que no usa For Extendido? :D

nandove
31/05/2009, 13:30
¿Otro usuario que no usa For Extendido? :D

XDDD a las 2-3 de la mañana raro es que me saliera asi de bien :p... por cierto te refieres al For each no?

Kurraudo
31/05/2009, 13:38
XDDD a las 2-3 de la mañana raro es que me saliera asi de bien :p... por cierto te refieres al For each no?
Sí, al for Each ( for(T elemento:vector a recorrer){} )
Será por lo que comenté con Misato, que nos están acostumbrando a nosotros que somos nuevos a usar ese en lugar del for normal.

^MiSaTo^
31/05/2009, 13:46
Podrías haber usado split o los tokenizer, el código es más limpito ;)
La clase String tiene muchísimos métodos para tratar las cadenas.
Incluso con el código que ha puesto nandove podías usar el método indexOf para ver dónde están los paréntesis ;)

< - >

Sí, al for Each ( for(T elemento:vector a recorrer){} )
Será por lo que comenté con Misato, que nos están acostumbrando a nosotros que somos nuevos a usar ese en lugar del for normal.

Eso es una guarrería XD :P
Yo prefiero ver el for "normal" que creo que se entiende mejor ;)

PharaOnyx
31/05/2009, 13:49
Yo prefiero ver el for "normal" que creo que se entiende mejor ;)
Por un momento he tenido un 'día de la marmota' x'DDDDDDDDDDD

No sé cómo andará Java de expresiones regulares pero, si tiene unas más o menos parecidas a las de Perl, lo puedes hacer con una sola línea de código :)

Saludos, Alex

otto_xd
31/05/2009, 13:55
Podrías haber usado split o los tokenizer, el código es más limpito ;)
La clase String tiene muchísimos métodos para tratar las cadenas.
Incluso con el código que ha puesto nandove podías usar el método indexOf para ver dónde están los paréntesis ;)

< - >


Eso es una guarrería XD :P
Yo prefiero ver el for "normal" que creo que se entiende mejor ;)
Ademas, el for each ese tiene pinta de poderse hacer con while, nop??

La programacion en C y en Java tiene una reglas estetias minimas, segun la euitt, y asin es como programo, como me han enseñado :P

Saludos

^MiSaTo^
31/05/2009, 13:59
Ademas, el for each ese tiene pinta de poderse hacer con while, nop??

La programacion en C y en Java tiene una reglas estetias minimas, segun la euitt, y asin es como programo, como me han enseñado :P

Saludos

Yo creo que esas reglas están en todos lados. A mi me enseñaron con las mismas que a ti supongo (por aquello de estar juntas tu escuela y la mía xDD) y luego cuando hice la certificación, lo vi igual que me habían enseñado.
En los curros que he tenido estos últimos 3 años, más de lo mismo ;)

otto_xd
31/05/2009, 14:04
Yo creo que esas reglas están en todos lados. A mi me enseñaron con las mismas que a ti supongo (por aquello de estar juntas tu escuela y la mía xDD) y luego cuando hice la certificación, lo vi igual que me habían enseñado.
En los curros que he tenido estos últimos 3 años, más de lo mismo ;)

Dos cosas que te iba a decir.

1º Becas en telefonica para programar en Android, miralo en la pagina, no se mucho mas

2º Estoy a punto de terminar, me recomiendas sacarme certificaciones??

Me mola sobretodo el tema de redes, ya sea protocolos o administracion, pero aqui los anillos no se caen por currar de otra cosa, y el principal objetivo es trabajar despues de verano xD

Saludos y gracias

^MiSaTo^
31/05/2009, 15:27
Dos cosas que te iba a decir.

1º Becas en telefonica para programar en Android, miralo en la pagina, no se mucho mas

2º Estoy a punto de terminar, me recomiendas sacarme certificaciones??

Me mola sobretodo el tema de redes, ya sea protocolos o administracion, pero aqui los anillos no se caen por currar de otra cosa, y el principal objetivo es trabajar despues de verano xD

Saludos y gracias

Gracias pero no quiero cambiar de curro de momento ;)
Las certificaciones depende de lo que quieras currar. Si vas a consultoras ayudan (a mi me las pagaron en mi anterior empresa) Ahora mismo a mi no me sirven de nada porque tengo una de "Experto en analisis y diseño con UML2 y experto en poo con J2EE" y yo curro con C++ xDDDDDDDD

otto_xd
31/05/2009, 15:34
Gracias pero no quiero cambiar de curro de momento ;)
Las certificaciones depende de lo que quieras currar. Si vas a consultoras ayudan (a mi me las pagaron en mi anterior empresa) Ahora mismo a mi no me sirven de nada porque tengo una de "Experto en analisis y diseño con UML2 y experto en poo con J2EE" y yo curro con C++ xDDDDDDDD

LOL xDDDDDD

Yo despues de verano a ver si encuentro curro rapido, pero vamos, que me han dicho que en telefonica te dan beca si te queda solo el pfc solo con pasar el curriculum, espero que sea verdad xD

^MiSaTo^
31/05/2009, 16:01
LOL xDDDDDD

Yo despues de verano a ver si encuentro curro rapido, pero vamos, que me han dicho que en telefonica te dan beca si te queda solo el pfc solo con pasar el curriculum, espero que sea verdad xD

Yo tengo una conocida de la uni currando de becaria en telefonica (con J2EE) y a ella le queda más que el TFC así que no creo que haga falta ;)
Oye y de lo tuyo no hay curro? (no se cómo está la situación en teleco ni de qué especialidad eres xDDD)
De programador vas a encontrar fijo, a mi no me ha sido dificil cambiar de trabajo 2 veces xDD

Wave
03/06/2009, 22:34
Creo que con esto bastaria, aunque no he podido probarlo:

String inicial = "Cuatro Vientos, Las Aguilas, Fanjul, Aluche (Correspondecias L3), Laguna (Correspondencias L1, L10), Embajadores (Correspondencias L6)";

String final = inicial.replaceAll("\\(.*\\)", "");

swapd0
03/06/2009, 22:50
Gracias pero no quiero cambiar de curro de momento ;)
Las certificaciones depende de lo que quieras currar. Si vas a consultoras ayudan (a mi me las pagaron en mi anterior empresa) Ahora mismo a mi no me sirven de nada porque tengo una de "Experto en analisis y diseño con UML2 y experto en poo con J2EE" y yo curro con C++ xDDDDDDDD

Una pregunta, ¿te sirve de algo el ser experto en analisis y diseño en tu trabajo, o la planificacion es nula?

Es que (yo no tengo ningún curso de esos) mi programa va creciendo como una bola de nieve, y hay partes que están cogidas con alfileres y todo es por la amplia planificación que se ha hecho.

Ahi va mi version en C++, ya se que llega tarde pero por si alguien le sirve de algo.


std::string quita_parentesis(const std::string &str)
{
int inicio=str.find('(');
int fin=str.find(')');

if ( inicio!=-1 &&
fin!=-1 &&
inicio<fin) // hay parentesis y estan bien colocados
return std::string(str.begin(), str.begin() + inicio)
+ quita_parentesis(std::string(str.begin() + fin + 1, str.end()));
else
return str;
}

otto_xd
03/06/2009, 23:06
Yo tengo una conocida de la uni currando de becaria en telefonica (con J2EE) y a ella le queda más que el TFC así que no creo que haga falta ;)
Oye y de lo tuyo no hay curro? (no se cómo está la situación en teleco ni de qué especialidad eres xDDD)
De programador vas a encontrar fijo, a mi no me ha sido dificil cambiar de trabajo 2 veces xDD
En teoria hay "trabajo", ya que soy de la rama telematica y en telefonica siempre hay becas mientras no termines la carrera... el tema es que ahora las empresas que subcontrata telefonica han pasado de tener una plantilla fija a contratar y despedir segun la carga del proyecto, cosa que era normal, ya que antes habia gente que no curraba durante 2 meses y seguia cobrando, la verdad...

La otra historia es que me molaria algo de ingenieria de redes, pero lo veo negro netro negro

Una pregunta, ¿te sirve de algo el ser experto en analisis y diseño en tu trabajo, o la planificacion es nula?

Es que (yo no tengo ningún curso de esos) mi programa va creciendo como una bola de nieve, y hay partes que están cogidas con alfileres y todo es por la amplia planificación que se ha hecho.


El mantra de mi escuela es que cuando antes comiences a codificar, mas tarde terminaras... todos los proyectos, por pequeños y tontos que sean, deberian de tener un minimo de planificacion, asi que si, deberia de servirte.

Por cierto, los analistas buenos son los de los que mas cobran, no te digo mas xD

swapd0
03/06/2009, 23:49
El mantra de mi escuela es que cuando antes comiences a codificar, mas tarde terminaras... todos los proyectos, por pequeños y tontos que sean

Esto es para enmarcarlo para que lo vean muchos jefes

^MiSaTo^
04/06/2009, 08:57
Una pregunta, ¿te sirve de algo el ser experto en analisis y diseño en tu trabajo, o la planificacion es nula?

Es que (yo no tengo ningún curso de esos) mi programa va creciendo como una bola de nieve, y hay partes que están cogidas con alfileres y todo es por la amplia planificación que se ha hecho.


Bueno a ver, yo no he dado un curso, yo he hecho un examen de una certificación que en resumidas cuentas es pagar por un papelito que acredite que sabes algo (cosa que no tiene por qué ser cierta en todos los casos).
Aún así yo era analista hasta hace unos meses, vamos que me dedicaba a hacer análisis y diseño (desde antes de tener la certificación). ASí que sí se planificaban las cosas.
De todos modos en los sitios donde he estado normalmente si se hacía analisis y diseño antes de nada, pero también ha podido ser una mierda.
Ahora donde estoy... bueno digamos que es otro mundo muy distinto al de las consultoras ;)

Bizkaitarra
04/06/2009, 09:19
Aprobecho el hilo
En una aplicación de gestión de biblioteca tengo que imprimir un carne de socio.
Para esto, he buscado por hay un código en esta página:
http://www.lawebdelprogramador.com/codigo/codigo.php?idp=162&id=44&texto=Java
Después he utilizado pagina (de tipo Graphics) para imprimir los campos que quiero.... pero, no se como hacer para incrustar una imagen por debajo.
Hay un metodo que es draw image pero no consigo usarlo:


class Impresora
{
Font fuente = new Font("Dialog", Font.PLAIN, 10);
PrintJob pj;
Graphics pagina;


/************************************************** ******************
* A continuación el constructor de la clase. Aquí lo único que *
* hago es tomar un objeto de impresion. *
************************************************** ******************/
Impresora()
{
pj = Toolkit.getDefaultToolkit().getPrintJob(new Frame(), "SCAT", null);
}

/************************************************** ******************
* A continuación el método "imprimir(String)", el encargado de *
* colocar en el objeto gráfico la cadena que se le pasa como *
* parámetro y se imprime. *
************************************************** ******************/
public void imprimir(String Cadena)
{
//LO COLOCO EN UN try/catch PORQUE PUEDEN CANCELAR LA IMPRESION
try
{
pagina = pj.getGraphics();
pagina.setFont(fuente);
pagina.setColor(Color.black);
//AQUI QUIERO METER LA IMAGEN CON LAS COORDENADAS
pagina.drawString(Cadena, 60, 60);
pagina.drawString("Nombre:",60,70);
pagina.drawString("Jon",100,70);
pagina.dispose();
pj.end();
}catch(Exception e)
{
System.out.println("LA IMPRESION HA SIDO CANCELADA...");
}
}//FIN DEL PROCEDIMIENTO imprimir(String...)


}//FIN DE LA CLASE Impresora