Boa tarde colegas, estou com um problema aqui assim:
~ Carlos foi a festa ^ Sara também.
tenho que substituir “Carlos foi a festa” por “P”(pode ser qualquer Caractere), o mesmo para “Sara também”, tenho q substituir por um simbolo por exemplo “Q”.
publicclassTesteReplaceString{publicstaticvoidmain(String[]args){Strings="~ Carlos foi a festa ^ Sara também";Strings2=s.replace("Carlos foi a festa","P");s2=s2.replace("Sara também","Q");System.out.println(s2);}}
marciosouzajunior
Não sei exatamente qual o sua intenção, mas acho q você deveria criar um objeto no qual possa guardar a sentença, a letra e ainda se o fato é verdade ou não. Aí você pode fazer o que quiser com esse objeto. Veja um exemplo:
publicclassTestePreposicao{publicstaticvoidmain(String[]args){PreposicaoP=newPreposicao("Carlos foi a festa","P",true);PreposicaoQ=newPreposicao("Sara também","Q",false);newTestePreposicao().resolvePreposicao(P,Q,"^");}publicvoidresolvePreposicao(Preposicaop1,Preposicaop2,Stringoperacao){if(operacao.equals("^")){System.out.println(p1.getSentenca()+" "+operacao+" "+p2.getSentenca()+" = "+(p1.isVerdade()&&p2.isVerdade()));}// Outras operações...}}classPreposicao{Stringsentenca;Stringletra;booleanverdade;publicPreposicao(Stringsentenca,Stringletra,booleanverdade){this.sentenca=sentenca;this.letra=letra;this.verdade=verdade;}publicStringgetLetra(){returnletra;}publicvoidsetLetra(Stringletra){this.letra=letra;}publicStringgetSentenca(){returnsentenca;}publicvoidsetSentenca(Stringsentenca){this.sentenca=sentenca;}publicbooleanisVerdade(){returnverdade;}publicvoidsetVerdade(booleanverdade){this.verdade=verdade;}}
D
DiegoLuiz
marciosouzajunior, o grande problema é que a frase deve ser a entrada do usúario, e pode ser uma premissa simples ou composta como dei um exemplo.
D
DiegoLuiz
Não sei se devo tratar a frase como um objeto.
marciosouzajunior
Para ler uma preposição você poderia simplesmente fazer:
Stringpreposicao=JOptionPane.showInputDialog("Informe a preposição");Stringletra=JOptionPane.showInputDialog("Informe a letra");Stringverdade=JOptionPane.showInputDialog("Digite 'verdade' ou 'falso'");PreposicaoX=newPreposicao(preposicao,letra,verdade.equals("verdade")?true:false);
Para ler outras preposições você poderia trabalhar com um while e salvá-las numa lista, algo assim…
D
DiegoLuiz
Farei alguns testes, qualquer coisa posto aqui.
ul1sses
Achei um código aqui do tempo da faculdade. É só teste hein…
Obs: só alterei o mapa pra bater com a sua frase…
importjava.util.HashMap;importjava.util.Map;publicclassTesteReplaceString{publicstaticvoidmain(String[]args){Map<String,String>mapa=newHashMap<String,String>();mapa.put("carlos foi a festa","P");mapa.put("carlos também","P");mapa.put("carlos não foi a festa","~P");mapa.put("mas carlos não","^ ~P");mapa.put("sara foi a festa","Q");mapa.put("sara também","Q");mapa.put("sara não foi a festa","~Q");mapa.put("mas sara não","^ ~Q");mapa.put("mas sara foi","^ Q");mapa.put("E","^");Strings="carlos não foi a festa mas sara foi";charvetor[]=s.toCharArray();StringBuffersb=newStringBuffer();for(charc:vetor){sb.append(c);if(mapa.get(sb.toString().trim())!=null){s=s.replace(sb.toString().trim(),mapa.get(sb.toString().trim()));sb=newStringBuffer();}}System.out.println(s);}}
D
DiegoLuiz
Nesse caso eu tenho que mapear todas as situações possíveis.