entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Lista en Java Properties

Buenas;

Tengo un programa que debe consumir valores de un archivo properties. Cuando debe consumir un valor lo hace sin problemas. Ejemplo
propiedad.a = 0

El inconveniente surge cuando debo verificar entre los valores que están cargados en el properties. Ejemplo
propiedad.b = 1,2,3,4
propiedad.c = 8,9

Necesito lo siguiente, que el programa pueda elegir en una una condicional si corresponde a alguna de las propiedades. Ejemplo:

string props = "0"
if (props.equal (propiedad.getProperties("propiedad.a"))
{
System.out.print ("propiedad A");
}

//En este caso como es un solo numero no me crea dramas.

string props = "9"
if (props.equal (propiedad.getProperties("propiedad.c"))
{
System.out.print ("propiedad C");
}

//En este caso si me da error, ya que compara el 8,9 contra el 9 dando falso.

Quiero saber si existe alguna manera que pueda discriminar y primero compare con el 8 luego con el 9.

Saludos

P.d. en todo caso alguna otra forma de parametrizar.

1 Respuesta

3votos

dairon Puntos17140

Hola, en esta dirección encontrarás un ejemplo de trabajo con los archivos de tipo properties en java Leer archivo properties en java una vez leido bien el archivo solo te queda hacerle un Debug paso a paso a tu programa y viendo el valor y las funciones que te da java podrás terminar bien lo que quieres hacer en tu programa. Te recomiendo utilizar JSON es una notación mucho más comoda para guardar datos y luego recuperarlos para un trabajo sencillo, aquí te dejo algunos link que te dan bueno documentación del trabajo en java con json. Por cierto JSON se utiliza hoy en día como fomato de intercambio de información entre diferentes lenguajes.
en español:
Como leer y escribir ficheros json con java
Java y JSON de forma Sencilla
Ejemplos JSON y Java con Gson
en Ingles:
JSON.org in Java
JSON with Java
Espero que los disfrutes si los lees no te arrepentiras.
Saludos Dairon

0voto

Jozx comentado

Gracias por la respuesta, creo que no me explique bien.
En este caso el programa ya lee el properties de manera correcta. Y en los casos donde la propiedad tiene solo un valor responde de manera correcta

El caso se da cuando la propiedad tiene mas de un valor.

El programa debe de poder comparar los datos del properties contra datos que le voy pasando.
Si en el properties esta:
propiedad.uno = 1
Y yo le paso un String = "1"
Al hacer el if retorna verdadero.

Como dije el inconveniente es cuando debe comparar contra una propiedad que tiene mas de un valor. Ejemplo
propiedad.dos = 2,3,4
Y yo le paso String = "3"
El valor "3" esta dentro de mi archivo properties, pero al hacer la comparación java toma como sigue
"3" == "2,3,4" dando falso.

Existiria una manera de que haga "3" == "2", luego "3" == "3" ???

O si no es posible alguna otra manera de parametrizar esto, ya que necesito que lo del properties se pueda modificar a gusto.

Desde ya muchas gracias.

Saludos.

0voto

dairon comentado

Tienes que hacer un ciclo un for que valla desde 0 hasta que i sea igual o mayor que propiedad.dos.length() y comparar el String que entras con propiedad.dos[i] donde i será tu variable iterativa que se inicializará en 0 y terminará en el ultimo elemento. O haces un ciclo while donde se repetira mientras el String que entras sea diferente al valor de la propiedad.dos[i] y mientras propiedad.dos[i] sea direferente de propiedad.dos[propiedad.dos.length()-1] es decir el ultimo. Qunque tengo la duda si tendras que hacerle un Parser al String porque según veo poner propiedad.dos = 2,3,4 los valores son integer no ??
Saludos Dairon

0voto

Jozx comentado

En este caso, son numeros pero son String, ya que voy a pasar texto al programa, y la forma de identificar es a traves de un digamos numero serial, para saber de que tipo son los textos, por eso cargo en el properties numeros.

Por ahora cada vez que paso el texto, por REGEX saco el numero serial, y en hardcode lo comparo.

Ahora me pidieron que esto se pueda configurar a gusto, por eso lo puse en el properties, pero como indique me dio error.

0voto

dairon comentado

Creo que lo mejor es que expliques copletamente lo que quieres hacer para uno poderte dar completamente la idea o solución

0voto

Jozx comentado

Disculpa que haya echo la pregunta por partes.

En este caso, encontre una posible solución, con el método split, convierto los valores del properties a un array, y luego hago la busqueda dentro del array creado.

Saludos.

0voto

dairon comentado

esa era la idea que te explicaba arriba con lo que te mencioné de hacer un ciclo ;), no obstante te recomiendo que veas la documentacion de JSON que te compartí arriba.

0voto

Peter comentado

Jozx, movi todas tus respuestas a comentarios, por favor publica como respuesta solo lo que es una respuesta a la pregunta como tal.

Saludos.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta