Hello Im trying to remove an elemento from a HashSet that have an entity created by me that is called "Product" this is the code:
Set listaItemsTrans = this.getTransaction().getTransactionItems();
HashSet listaIteratorI = new HashSet();
listaIteratorI.addAll(listaItemsTrans);
Iterator itemSet = listaIteratorI.iterator();
while (itemSet.hasNext())
{
Product prodBif = (Product) itemSet.next();
logger.debug("Prod bif = " + prodBif.getIdProduct() + " = " + "Prod search = " + prodSearch.getIdProduct());
if (prodBif.getIdProduct().compareTo(prodSearch.getIdProduct()) == 0)
{
logger.debug("El Producto ha sido encontrado");
try
{
logger.debug("ProdBif " + prodBif);
logger.debug("Lista de productos 3 " + this.getTransaction().getTransactionItems());
boolean isRemoved;
isRemoved = this.getTransaction().getTransactionItems().remove(prodBif);
logger.debug("isRemoved? " + isRemoved);
}
catch (Exception e)
{
e.printStackTrace();
}
logger.debug("Lista de productos 4" + this.getTransaction().getTransactionItems());
prodBif = prodSearch;
this.getTransaction().getTransactionItems().add(prodBif);
logger.debug("Lista de productos 5" + this.getTransaction().getTransactionItems());
isOkey = true;
}
}
The product is the same i already check that but im gonna put the product equal:
Product Bif: Product [idProduct=1546405266442777, transaction=Transaction [idTransaction=1546405253162777, transaction=077700514, transactionDate=2019-01-02 10:01:06, session=Session [idSession=1546405226194777, session=00130777000000011111, cashier=com.lds.exito.darchitecture.domainmodel.entities.Cashier#d8241df3, store=Store [idStore=1546405226193777, store=0013, description=EXTITO GRAN VIA M001120], terminal=777, sessionDate=2019-01-02 10:00:26], sequenceNumber=0514, ], pluVariety=000000213690, salePrice=9900, description=NEVERA NO FROST 39, details={CashierID=0000011111, mensaje=Certificado valido, TransactionID=0514, AuthorizationBus=CommunicationHttpBodyAuthBus, ValidationResponseRevertionStatus=com.lds.exito.soa.status.validation.IvaDifResponseStatusValidation, portPrimary=, hostPrimary=http://wsredverde.datagestion.co/ws/?a=2&certificado=3&identificacion=8276946&codigo=13, contentType=application/json, StoreID=0013, PREFIX_AUTH_END_identificacion==8276946, OriginalTerminalID=777, nroIdentificacion=8276946, uri=, AuthorizationClassName=FinalAuthorizationHttp, plu=000000213690, PREFIX_AUTH_END_certificado==3, TerminalID=777, fechaHora=2019-01-02T10:01:06, nroCertificado=3, OriginalTransactionID=0514}, extras={transaction_record=IvaDif/IvaDif-99-129,,, voucher_list=IvaDif/FooterRecarga,}, authorizationType=ParametersConfig [idParameter=2, descriptionGroup=Tipos de Autorizacion, idGroup=TPAUT, descriptionParameter=Autorizacion al Final de la Transaccion, parameterValue=ENDTR], authorizationStatus=ParametersConfig [idParameter=3, descriptionGroup=Estado de la Autorizacion, idGroup=STAUT, descriptionParameter=Pendiente, parameterValue=PNDNG], reverseType=ParametersConfig [idParameter=7, descriptionGroup=Tipos de Reverso, idGroup=TPREV, descriptionParameter=No Aplica, parameterValue=NOAPP], reverseStatus=ParametersConfig [idParameter=8, descriptionGroup=Estado del Reverso, idGroup=STREV, descriptionParameter=No Aplica, parameterValue=NOAPP], anulationType=ParametersConfig [idParameter=11, descriptionGroup=Tipos de Anulacion, idGroup=TPANU, descriptionParameter=Aplica, parameterValue=APPLY], anulationStatus=ParametersConfig [idParameter=13, descriptionGroup=Estado del Anulacion, idGroup=STANU, descriptionParameter=No Aplica, parameterValue=NOAPP], productType=ParametersConfig [idParameter=16, descriptionGroup=Tipos de Producto, idGroup=TPPDT, descriptionParameter=Item, parameterValue=ITEM], quantity=1, ]
Product in the HashSet: Product [idProduct=1546405266442777, transaction=Transaction [idTransaction=1546405253162777, transaction=077700514, transactionDate=2019-01-02 10:01:06, session=Session [idSession=1546405226194777, session=00130777000000011111, cashier=com.lds.exito.darchitecture.domainmodel.entities.Cashier#d8241df3, store=Store [idStore=1546405226193777, store=0013, description=EXTITO GRAN VIA M001120], terminal=777, sessionDate=2019-01-02 10:00:26], sequenceNumber=0514, ], pluVariety=000000213690, salePrice=9900, description=NEVERA NO FROST 39, details={CashierID=0000011111, mensaje=Certificado valido, TransactionID=0514, AuthorizationBus=CommunicationHttpBodyAuthBus, ValidationResponseRevertionStatus=com.lds.exito.soa.status.validation.IvaDifResponseStatusValidation, portPrimary=, hostPrimary=http://wsredverde.datagestion.co/ws/?a=2&certificado=3&identificacion=8276946&codigo=13, contentType=application/json, StoreID=0013, PREFIX_AUTH_END_identificacion==8276946, OriginalTerminalID=777, nroIdentificacion=8276946, uri=, AuthorizationClassName=FinalAuthorizationHttp, plu=000000213690, PREFIX_AUTH_END_certificado==3, TerminalID=777, fechaHora=2019-01-02T10:01:06, nroCertificado=3, OriginalTransactionID=0514}, extras={transaction_record=IvaDif/IvaDif-99-129,,, voucher_list=IvaDif/FooterRecarga,}, authorizationType=ParametersConfig [idParameter=2, descriptionGroup=Tipos de Autorizacion, idGroup=TPAUT, descriptionParameter=Autorizacion al Final de la Transaccion, parameterValue=ENDTR], authorizationStatus=ParametersConfig [idParameter=3, descriptionGroup=Estado de la Autorizacion, idGroup=STAUT, descriptionParameter=Pendiente, parameterValue=PNDNG], reverseType=ParametersConfig [idParameter=7, descriptionGroup=Tipos de Reverso, idGroup=TPREV, descriptionParameter=No Aplica, parameterValue=NOAPP], reverseStatus=ParametersConfig [idParameter=8, descriptionGroup=Estado del Reverso, idGroup=STREV, descriptionParameter=No Aplica, parameterValue=NOAPP], anulationType=ParametersConfig [idParameter=11, descriptionGroup=Tipos de Anulacion, idGroup=TPANU, descriptionParameter=Aplica, parameterValue=APPLY], anulationStatus=ParametersConfig [idParameter=13, descriptionGroup=Estado del Anulacion, idGroup=STANU, descriptionParameter=No Aplica, parameterValue=NOAPP], productType=ParametersConfig [idParameter=16, descriptionGroup=Tipos de Producto, idGroup=TPPDT, descriptionParameter=Item, parameterValue=ITEM], quantity=1, ]
And i dont know why that is happening, something that i miss?
Note 1: when i try to do the same thing with another product that code works
Note 2: Im using java 1.4 by restrictions in the hardware
Related
I have an app that sends an email to the user when he doesn´t login for X months.
An example of a message is as follows:
"Informa-se que este utilizador não efetua Login no SGES há mais de três meses. Caso o utilizador já não se encontre ativo, por favor, contacte o administrador do SGES da sua entidade, para que o perfil do utilizador seja removido do sistema."
But in the email received with that message, it shows like this:
“Informa-se que este utilizador n�o efetua Login no SGES h� mais de tr�s meses. Caso o utilizador j� n�o se encontre ativo, por favor, contacte o administrador do SGES da sua entidade, para que o perfil do utilizador seja removido do sistema.”
I'm not showing any code because I'm not sure what to show in this particular case.
When I'm retrieving the message, I'm only doing a getMessage from the column from the database.
Any way to fix?
I need to get more than 300 values from json objects, but I used bean I have to declare 300 getters and setters?
Thank you
My Json:
"ME_1":"09:19",
"MS_1":"12:49",
"TE_1":"14:01",
"TS_1":"17:46",
"Total_1":7.25,
"ME_2":"SABADO",
"MS_2":"SABADO",
"TE_2":"SABADO",
"TS_2":"SABADO",
"EE_2":"SABADO",
"ES_2":"SABADO",
"E4_2":"SABADO",
"S4_2":"SABADO",
"E5_2":"SABADO",
"S5_2":"SABADO",
"Total_2":0,
"ME_3":"DOMINGO",
"MS_3":"DOMINGO",
"TE_3":"DOMINGO",
"TS_3":"DOMINGO",
"EE_3":"DOMINGO",
"ES_3":"DOMINGO",
"E4_3":"DOMINGO",
"S4_3":"DOMINGO",
"E5_3":"DOMINGO",
"S5_3":"DOMINGO",
"Total_3":0,
"ME_4":"09:20",
"MS_4":"12:00",
"TE_4":"13:59",
"TS_4":"18:43",
"Total_4":7.4,
"ME_5":"09:31",
"MS_5":"11:50",
"TE_5":"13:36",
"TS_5":"19:13",
"Total_5":7.933333333333334,
"ME_6":"09:31",
"MS_6":"12:42",
"TE_6":"13:41",
"TS_6":"18:04",
"Total_6":7.566666666666666,
"ME_7":"09:16",
"MS_7":"12:49",
"TE_7":"13:33",
"TS_7":"19:21",
"Total_7":9.35,
"ME_8":"09:32",
"MS_8":"12:45",
"TE_8":"14:36",
"TS_8":"18:43",
"Total_8":7.333333333333333,
"ME_9":"FERIADO",
"MS_9":"FERIADO",
"TE_9":"FERIADO",
"TS_9":"FERIADO",
"EE_9":"FERIADO",
"ES_9":"FERIADO",
"E4_9":"FERIADO",
"S4_9":"FERIADO",
"E5_9":"FERIADO",
"S5_9":"FERIADO",
"Total_9":0,
"ME_10":"DOMINGO",
"MS_10":"DOMINGO",
"TE_10":"DOMINGO",
"TS_10":"DOMINGO",
"EE_10":"DOMINGO",
"ES_10":"DOMINGO",
"E4_10":"DOMINGO",
"S4_10":"DOMINGO",
"E5_10":"DOMINGO",
"S5_10":"DOMINGO",
"Total_10":0,
"ME_11":"09:31",
"MS_11":"12:40",
"TE_11":"13:41",
"TS_11":"18:38",
"Total_11":8.1,
"ME_12":"09:31",
"MS_12":"12:00",
"TE_12":"13:40",
"TS_12":"19:44",
"Total_12":8.55,
"ME_13":"09:22",
"MS_13":"12:49",
"TE_13":"13:48",
"TS_13":"18:28",
"Total_13":8.116666666666667,
"ME_14":"09:22",
"MS_14":"11:59",
"TE_14":"13:39",
"TS_14":"19:17",
"Total_14":8.25,
"ME_15":"09:19",
"MS_15":"12:13",
"TE_15":"13:31",
"TS_15":"17:43",
"Total_15":7.1,
"ME_16":"SABADO",
"MS_16":"SABADO",
"TE_16":"SABADO",
"TS_16":"SABADO",
"EE_16":"SABADO",
"ES_16":"SABADO",
"E4_16":"SABADO",
"S4_16":"SABADO",
"E5_16":"SABADO",
"S5_16":"SABADO",
"Total_16":0,
"ME_17":"DOMINGO",
"MS_17":"DOMINGO",
"TE_17":"DOMINGO",
"TS_17":"DOMINGO",
"EE_17":"DOMINGO",
"ES_17":"DOMINGO",
"E4_17":"DOMINGO",
"S4_17":"DOMINGO",
"E5_17":"DOMINGO",
"S5_17":"DOMINGO",
"Total_17":0,
"ME_18":"09:26",
"MS_18":"12:54",
"TE_18":"13:52",
"TS_18":"19:18",
"Total_18":8.9,
"ME_19":"09:20",
"MS_19":"12:30",
"TE_19":"12:30",
"TS_19":"13:02",
"EE_19":"19:17",
"Total_19":3.6999999999999997,
"Obs_19":"-> Erro no Ponto! 2o. Per\u00EDodo - S\u00F3 existe o hor\u00E1rio da entrada.",
"ME_20":"09:14",
"MS_20":"12:42",
"TE_20":"13:42",
"TS_20":"19:23",
"Total_20":9.15,
"ME_21":"09:16",
"MS_21":"12:44",
"TE_21":"13:29",
"TS_21":"20:04",
"Total_21":10.05,
"ME_22":"09:27",
"MS_22":"12:34",
"TE_22":"13:41",
"TS_22":"18:38",
"Total_22":8.066666666666666,
"ME_23":"SABADO",
"MS_23":"SABADO",
"TE_23":"SABADO",
"TS_23":"SABADO",
"EE_23":"SABADO",
"ES_23":"SABADO",
"E4_23":"SABADO",
"S4_23":"SABADO",
"E5_23":"SABADO",
"S5_23":"SABADO",
"Total_23":0,
"ME_24":"DOMINGO",
"MS_24":"DOMINGO",
"TE_24":"DOMINGO",
"TS_24":"DOMINGO",
"EE_24":"DOMINGO",
"ES_24":"DOMINGO",
"E4_24":"DOMINGO",
"S4_24":"DOMINGO",
"E5_24":"DOMINGO",
"S5_24":"DOMINGO",
"Total_24":0,
"ME_25":"09:18",
"MS_25":"12:30",
"TE_25":"13:28",
"TS_25":"19:07",
"Total_25":8.850000000000001,
"Total_26":0,
"ME_27":"09:11",
"MS_27":"12:53",
"TE_27":"13:35",
"TS_27":"19:47",
"Total_27":9.9,
"ME_28":"09:17",
"MS_28":"13:01",
"TE_28":"13:44",
"TS_28":"20:47",
"Total_28":10.783333333333333,
"Obs_28":"-> Aten\u00E7\u00E3o, o colaborador trabalhou 7 ou mais horas e n\u00E3o houve intervalo de descanso preenchido.",
"ME_29":"09:29",
"MS_29":"12:42",
"TE_29":"13:40",
"TS_29":"18:46",
"Total_29":8.316666666666666,
"ME_30":"SABADO",
"MS_30":"SABADO",
"TE_30":"SABADO",
"TS_30":"SABADO",
"EE_30":"SABADO",
"ES_30":"SABADO",
"E4_30":"SABADO",
"S4_30":"SABADO",
"E5_30":"SABADO",
"S5_30":"SABADO",
"Total_30":0,
"ME_31":"DOMINGO",
"MS_31":"DOMINGO",
"TE_31":"DOMINGO",
"TS_31":"DOMINGO",
"EE_31":"DOMINGO",
"ES_31":"DOMINGO",
"E4_31":"DOMINGO",
"S4_31":"DOMINGO",
"E5_31":"DOMINGO",
"S5_31":"DOMINGO",
"Total_31":0,
"TotalHrTrab":164.66666666666666,
"Historico":
["1a. Quinzena - Controle de Frequ\u00EAncia importado do Controle de Ponto por Ayla Batista em 20\/07\/2016 16:40:26","Controle
de Frequ\u00EAncia Mensal gerado automaticamente pelo sistema em
07/08/2016 22:00:51"
]
}
This question already has answers here:
How to fix error: The markup in the document following the root element must be well-formed
(2 answers)
Closed 5 years ago.
i am trying to convert a String to an xml document but i get this error
The markup in the document following the root element must be well-formed
This is the file
<?xml version="1.0" encoding="utf-8"?><paragraph><Sentence>?</Sentence><Sentence>Une avalanche fait six morts dans les Alpes autrichiennes</Sentence></paragraph>
<paragraph><Sentence>Une avalanche fait six morts dans les Alpes autrichiennes</Sentence>
<Sentence>VIENNE - Six alpinistes - cinq Tchèques et un Slovaque - ont péri dans une avalanche près de la station de ski de Sölden dans les Alpes autrichiennes, fait savoir la police d'Innsbruck.</Sentence>
<Sentence>Des témoins ont assisté à l'avalanche, samedi dans le secteur du Schalfkogel, sommet qui culmine à 3.540 mètres dans le massif de l'Ötztal au Tyrol.</Sentence> <Sentence>Ils ont alerté les secours de haute montagne, qui n'ont pu atteindre les lieux que dimanche matin en raison du mauvais temps.</Sentence>
<Sentence>Le Schalfkogel se trouve dans un secteur isolé, au sud-ouest d'Innsbruck, entre les stations de montagne de Sölden et d'Obergurgl, non loin de la frontière italienne.</Sentence>
<Sentence>Le seul rescapé du groupe est un Tchèque d'âge moyen qui avait choisi de rester dans un refuge et a permis d'identifier ses camarades défunts.</Sentence>
<Sentence>Les Alpes autrichiennes ont connu cet hiver des chutes de neige inhabituellement fortes et les avalanches ont été fréquentes et parfois meurtrières, tuant surtout des skieurs qui faisaient du hors piste.</Sentence></paragraph>
You have 2 root elements in that xml file:
<paragraph><Sentence>?</Sentence><Sentence>Une avalanche fait six morts dans les Alpes autrichiennes</Sentence></paragraph>
and
<paragraph><Sentence>Une avalanche fait six morts dans les Alpes autrichiennes</Sentence>
<Sentence>VIENNE - Six alpinistes - cinq Tchèques et un Slovaque - ont péri dans une avalanche près de la station de ski de Sölden dans les Alpes autrichiennes, fait savoir la police d'Innsbruck.</Sentence>
<Sentence>Des témoins ont assisté à l'avalanche, samedi dans le secteur du Schalfkogel, sommet qui culmine à 3.540 mètres dans le massif de l'Ötztal au Tyrol.</Sentence> <Sentence>Ils ont alerté les secours de haute montagne, qui n'ont pu atteindre les lieux que dimanche matin en raison du mauvais temps.</Sentence>
<Sentence>Le Schalfkogel se trouve dans un secteur isolé, au sud-ouest d'Innsbruck, entre les stations de montagne de Sölden et d'Obergurgl, non loin de la frontière italienne.</Sentence>
<Sentence>Le seul rescapé du groupe est un Tchèque d'âge moyen qui avait choisi de rester dans un refuge et a permis d'identifier ses camarades défunts.</Sentence>
<Sentence>Les Alpes autrichiennes ont connu cet hiver des chutes de neige inhabituellement fortes et les avalanches ont été fréquentes et parfois meurtrières, tuant surtout des skieurs qui faisaient du hors piste.</Sentence></paragraph>
There must be exactly 1 root element in a well-formed xml document. You need to save those <paragraph> elements to individual files or add a root element around those <paragraph> elements, e.g.:
<?xml version="1.0" encoding="utf-8"?>
<root>
<paragraph>
<Sentence>?</Sentence>
<Sentence>Une avalanche fait six morts dans les Alpes autrichiennes</Sentence>
</paragraph>
<paragraph>
<Sentence>Une avalanche fait six morts dans les Alpes autrichiennes</Sentence>
<Sentence>VIENNE - Six alpinistes - cinq Tchèques et un Slovaque - ont péri dans une avalanche près de la station de ski de Sölden dans les Alpes autrichiennes, fait savoir la police d'Innsbruck.</Sentence>
<Sentence>Des témoins ont assisté à l'avalanche, samedi dans le secteur du Schalfkogel, sommet qui culmine à 3.540 mètres dans le massif de l'Ötztal au Tyrol.</Sentence>
<Sentence>Ils ont alerté les secours de haute montagne, qui n'ont pu atteindre les lieux que dimanche matin en raison du mauvais temps.</Sentence>
<Sentence>Le Schalfkogel se trouve dans un secteur isolé, au sud-ouest d'Innsbruck, entre les stations de montagne de Sölden et d'Obergurgl, non loin de la frontière italienne.</Sentence>
<Sentence>Le seul rescapé du groupe est un Tchèque d'âge moyen qui avait choisi de rester dans un refuge et a permis d'identifier ses camarades défunts.</Sentence>
<Sentence>Les Alpes autrichiennes ont connu cet hiver des chutes de neige inhabituellement fortes et les avalanches ont été fréquentes et parfois meurtrières, tuant surtout des skieurs qui faisaient du hors piste.</Sentence>
</paragraph>
</root>
If you will ever have such issues, use xml validator, like:
http://www.w3schools.com/xml/xml_validator.asp
In my opinion you need some kind of a container for your whole xml. Please add an additional tag for instance <container> right after <?xml version="1.0" encoding="utf-8"?> and do not forget to close this tag at the end.
Whole xml would look like:
<?xml version="1.0" encoding="UTF-8"?>
<container>
<paragraph>
<Sentence>?</Sentence>
<Sentence>Une avalanche fait six morts dans les Alpes autrichiennes</Sentence>
</paragraph>
<paragraph>
<Sentence>Une avalanche fait six morts dans les Alpes autrichiennes</Sentence>
<Sentence>VIENNE - Six alpinistes - cinq Tchèques et un Slovaque - ont péri dans une avalanche près de la station de ski de Sölden dans les Alpes autrichiennes, fait savoir la police d'Innsbruck.</Sentence>
<Sentence>Des témoins ont assisté à l'avalanche, samedi dans le secteur du Schalfkogel, sommet qui culmine à 3.540 mètres dans le massif de l'Ötztal au Tyrol.</Sentence>
<Sentence>Ils ont alerté les secours de haute montagne, qui n'ont pu atteindre les lieux que dimanche matin en raison du mauvais temps.</Sentence>
<Sentence>Le Schalfkogel se trouve dans un secteur isolé, au sud-ouest d'Innsbruck, entre les stations de montagne de Sölden et d'Obergurgl, non loin de la frontière italienne.</Sentence>
<Sentence>Le seul rescapé du groupe est un Tchèque d'âge moyen qui avait choisi de rester dans un refuge et a permis d'identifier ses camarades défunts.</Sentence>
<Sentence>Les Alpes autrichiennes ont connu cet hiver des chutes de neige inhabituellement fortes et les avalanches ont été fréquentes et parfois meurtrières, tuant surtout des skieurs qui faisaient du hors piste.</Sentence>
</paragraph>
</container>
I am replacing part of a string as follows
biblebook.replaceAll("[{\"-bnumber\":\"1\",\"-bname\":\"Genesis\",\"CHAPTER\":","[");
but my log shows the following error
09-25 16:33:47.421: W/System.err(5116): java.util.regex.PatternSyntaxException: Missing closing bracket in character class near index 46:
09-25 16:33:47.421: W/System.err(5116): [{"-bnumber":"1","-bname":"Genesis","CHAPTER":
09-25 16:33:47.421: W/System.err(5116): ^
09-25 16:33:47.421: W/System.err(5116): at java.util.regex.Pattern.compileImpl(Native Method)
09-25 16:33:47.421: W/System.err(5116): at java.util.regex.Pattern.compile(Pattern.java:400)
09-25 16:33:47.429: W/System.err(5116): at java.util.regex.Pattern.<init>(Pattern.java:383)
09-25 16:33:47.429: W/System.err(5116): at java.util.regex.Pattern.compile(Pattern.java:374)
09-25 16:33:47.429: W/System.err(5116): at java.lang.String.replaceAll(String.java:1784)
09-25 16:33:47.429: W/System.err(5116): at .Index$loadingTask.doInBackground(Index.java:383)
any idea ?
UPDATE this is part of my string
[{"-bnumber":"1","-bname":"Genesis","CHAPTER":[{"-cnumber":"1","VERS":[{"-vnumber":"1","#text":"Au
commencement, Dieu créa les cieux et la
terre."},{"-vnumber":"2","#text":"La terre était informe et vide: il y
avait des ténèbres à la surface de l'abîme, et l'esprit de Dieu se
mouvait au-dessus des eaux."},{"-vnumber":"3","#text":"Dieu dit: Que
la lumière soit! Et la lumière fut."},{"-vnumber":"4","#text":"Dieu
vit que la lumière était bonne; et Dieu sépara la lumière d'avec les
ténèbres."},{"-vnumber":"5","#text":"Dieu appela la lumière jour, et
il appela les ténèbres nuit. Ainsi, il y eut un soir, et il y eut un
matin: ce fut le premier jour."},{"-vnumber":"6","#text":"Dieu dit:
Qu'il y ait une étendue entre les eaux, et qu'elle sépare les eaux
d'avec les eaux."},{"-vnumber":"7","#text":"Et Dieu fit l'étendue, et
il sépara les eaux qui sont au-dessous de l'étendue d'avec les eaux
qui sont au-dessus de l'étendue. Et cela fut
ainsi."},{"-vnumber":"8","#text":"Dieu appela l'étendue ciel. Ainsi,
il y eut un soir, et il y eut un matin: ce fut le second
jour."},{"-vnumber":"9","#text":"Dieu dit: Que les eaux qui sont
au-dessous du ciel se rassemblent en un seul lieu, et que le sec
paraisse. Et cela fut ainsi."},{"-vnumber":"10","#text":"Dieu appela
le sec terre, et il appela l'amas des eaux mers. Dieu vit que cela
était bon."},{"-vnumber":"11","#text":"Puis Dieu dit: Que la terre
produise de la verdure, de l'herbe portant de la semence, des arbres
fruitiers donnant du fruit selon leur espèce et ayant en eux leur
semence sur la terre. Et cela fut
ainsi."},{"-vnumber":"12","#text":"La terre produisit de la verdure,
de l'herbe portant de la semence selon son espèce, et des arbres
donnant du fruit et ayant en eux leur semence selon leur espèce. Dieu
vit que cela était bon."},{"-vnumber":"13","#text":"Ainsi, il y eut un
soir, et il y eut un matin: ce fut le troisième
jour."},{"-vnumber":"14","#text":"Dieu dit: Qu'il y ait des luminaires
dans l'étendue du ciel, pour séparer le jour d'avec la nuit; que ce
soient des signes pour marquer les époques, les jours et les
années;"},{"-vnumber":"15","#text":"et qu'ils servent de luminaires
dans l'étendue du ciel, pour éclairer la terre. Et cela fut
ainsi."},{"-vnumber":"16","#text":"Dieu fit les deux grands
luminaires, le plus grand luminaire pour présider au jour, et le plus
petit luminaire pour présider à la nuit; il fit aussi les
étoiles."},{"-vnumber":"17","#text":"Dieu les plaça dans l'étendue du
ciel, pour éclairer la terre,"},{"-vnumber":"18","#text":"pour
présider au jour et à la nuit, et pour séparer la lumière d'avec les
ténèbres. Dieu vit que cela était
bon."},{"-vnumber":"19","#text":"Ainsi, il y eut un soir, et il y eut
un matin: ce fut le quatrième jour."},{"-vnumber":"20","#text":"Dieu
dit: Que les eaux produisent en abondance des animaux vivants, et que
des oiseaux volent sur la terre vers l'étendue du
ciel."},{"-vnumber":"21","#text":"Dieu créa les grands poissons et
tous les animaux vivants qui se meuvent, et que les eaux produisirent
en abondance selon leur espèce; il créa aussi tout oiseau ailé selon
son espèce. Dieu vit que cela était
bon."},{"-vnumber":"22","#text":"Dieu les bénit, en disant: Soyez
féconds, multipliez, et remplissez les eaux des mers; et que les
oiseaux multiplient sur la terre."},{"-vnumber":"23","#text":"Ainsi,
il y eut un soir, et il y eut un matin: ce fut le cinquième
jour."},{"-vnumber":"24","#text":"Dieu dit: Que la terre produise des
animaux vivants selon leur espèce, du bétail, des reptiles et des
animaux terrestres, selon leur espèce. Et cela fut
ainsi."},{"-vnumber":"25","#text":"Dieu fit les animaux de la terre
selon leur espèce, le bétail selon son espèce, et tous les reptiles de
la terre selon leur espèce. Dieu vit que cela était
bon."},{"-vnumber":"26","#text":"Puis Dieu dit: Faisons l'homme à
notre image, selon notre ressemblance, et qu'il domine sur les
poissons de la mer, sur les oiseaux du ciel, sur le bétail, sur toute
You have to escape the square brackets ([ and ]) using double backslash (\\), as they have a function in regexp... (edit: and of course the curly brackets too { })
biblebook.replaceAll("\\[\\{\"-bnumber\":\"1\",\"-bname\":\"Genesis\",\"CHAPTER\":","\\[");
Also: I find it helps me to use an online regex checker like this as it makes work much quicker
If you want to replace that exact string and don't want to use a regex, use biblebook.replace() instead of biblebook.replaceAll().
If you want to include [ as a part of your regex expression, then you need to close the bracket.
[{\"-bnumber\":\"1\",\"-bname\":\"Genesis\",\"CHAPTER\]
But if the bracket [ is part of your string, then you need to escape as
\\[{\"-bnumber\":\"1\",\"-bname\":\"Genesis\",\"CHAPTER\
I would like to change this code to display only "OK" and delete the cancel button.
Object contestacion5 = JOptionPane.showInputDialog(null, "#5 Que describe mejor a la Norteña?", "Examen Tijuanas PR", //3
JOptionPane.DEFAULT_OPTION, null,
new Object[] {"Ensalada de espinacas, tomates, zetas, cebolla, tocineta, aguacate, queso de hoja y tiras de maiz crujientes en vinagreta de la casa.",
"Lechuga romana servida con tomate, cebolla, maiz, aguacate, queso de hoja y tiritas de maiz crujientes acompañado de su seleccion de filetes de pollo de res.",
"Ensalada vegetariana de nopales, tomates, cebolla, lechuga romana, queso de hoja, aguacate, y aderezo especial de la casa." }, null);
Here it is the picture, I want it exactly as this but without the Cancel button, thanks!
I did some experimenting. It's easy enough to use showInputDialog to show the answers in a dropdown list (combobox) but it does not seem to be possible to remove the Cancel button.
Instead you can use showConfirmDialog, where the 'message' is not a simple String, but a visual panel containing: (1) a label for the question; (2) a combobox for the answers. I've wrapped this up into a method to make it easier to use:
static int showQuestion(String dialogTitle, String question, String[] answers) {
JPanel panel = new JPanel(new BorderLayout());
panel.add(new JLabel(question), BorderLayout.NORTH);
JComboBox<String> comboBox = new JComboBox<>(answers);
panel.add(comboBox);
if (JOptionPane.CLOSED_OPTION == JOptionPane.showConfirmDialog(null, panel, dialogTitle, JOptionPane.DEFAULT_OPTION)) {
return -1;
}
return comboBox.getSelectedIndex();
}
Example usage:
int choice = showQuestion("Examen Tijuanas PR", "#5 Que describe mejor a la Norteña?", new String[] {
"Ensalada de espinacas, tomates, zetas, cebolla, tocineta, aguacate, queso de hoja y tiras de maiz crujientes en vinagreta de la casa.",
"Lechuga romana servida con tomate, cebolla, maiz, aguacate, queso de hoja y tiritas de maiz crujientes acompañado de su seleccion de filetes de pollo de res.",
"Ensalada vegetariana de nopales, tomates, cebolla, lechuga romana, queso de hoja, aguacate, y aderezo especial de la casa.",
});
System.out.println("User chose #" + choice);
The showQuestion method returns the 0-based index of the answer the user chose. The dialog has an 'OK' button but no 'Cancel' button; however, there's still a problem: the user can still close the dialog by clicking the 'X' of the dialog, or by right-clicking the titlebar and selecting 'Close' from the popup menu. That has the same effect as 'Cancel'. So, the code above checks for this, and returns -1 if the user did not make a choice because they closed the dialog somehow without clicking 'OK'.
I can't see an easy way to remove the close button of the dialog. It would be annoying anyway, because it would prevent them from closing the program or cancelling the test. It's best to let the user close/cancel the dialog if they really want to, and handle that situation as appropriate.
Also, it might be more user-friendly to show the choices as radio buttons (these things: (●) A, ( ) B, ( ) C) instead of a dropdown list. That way, the user can read all the choices at once without an extra click. Here's an alternative showQuestion method which does that, if you want. (It calls the dialog in a loop just in case the user did not select any option before clicking 'OK'.)
static int showQuestion(String dialogTitle, String question, String[] answers) {
Box box = new Box(BoxLayout.Y_AXIS);
box.add(new JLabel(question));
JRadioButton[] radioButtons = new JRadioButton[answers.length];
ButtonGroup buttonGroup = new ButtonGroup();
for (int i = 0; i < answers.length; i++) {
radioButtons[i] = new JRadioButton(answers[i]);
buttonGroup.add(radioButtons[i]);
box.add(radioButtons[i]);
}
for (;;) {
if (JOptionPane.CLOSED_OPTION == JOptionPane.showConfirmDialog(null, box, dialogTitle, JOptionPane.DEFAULT_OPTION)) {
return -1;
}
for (int i = 0; i < radioButtons.length; i++) {
if (radioButtons[i].isSelected()) return i;
}
}
}
Edit: To return the answer directly instead of an index into the array, make a few small changes to the function above:
return type String instead of int.
return null instead of -1 when the user cancelled it
return answers[comboBox.getSelectedIndex()] instead of just comboBox.getSelectedIndex()
So it becomes:
static String showQuestion(String dialogTitle, String question, String[] answers) {
JPanel panel = new JPanel(new BorderLayout());
panel.add(new JLabel(question), BorderLayout.NORTH);
JComboBox<String> comboBox = new JComboBox<>(answers);
panel.add(comboBox);
if (JOptionPane.CLOSED_OPTION == JOptionPane.showConfirmDialog(null, panel, dialogTitle, JOptionPane.DEFAULT_OPTION)) {
return null;
}
return answers[comboBox.getSelectedIndex()];
}
Then, the equivalent of the original snippet is:
Object contestacion5 = showQuestion("Examen Tijuanas PR", "#5 Que describe mejor a la Norteña?", new String[] {
"Ensalada de espinacas, tomates, zetas, cebolla, tocineta, aguacate, queso de hoja y tiras de maiz crujientes en vinagreta de la casa.",
"Lechuga romana servida con tomate, cebolla, maiz, aguacate, queso de hoja y tiritas de maiz crujientes acompañado de su seleccion de filetes de pollo de res.",
"Ensalada vegetariana de nopales, tomates, cebolla, lechuga romana, queso de hoja, aguacate, y aderezo especial de la casa.",
});