Pessoal tenhu que fazer um programa que recebe uma frase e depois mais duas string uma que tem na frase e outra para colocar no lugar da primeira, ou seja:
Ex: Estou na minha casa
palavra: casa
palavra_ser_trocada: escola
Imprimir: Estou na minha escola
import javax.swing.*;
public class TrocaString{
publicstaticvoidmain(Stringargs[]){Stringfrase;Stringpalavra_retirar_frase;//umapalavraquecontenhanafraseStringpalavra_coloca_frase;//umapalavraqualquerfrase=JOptionPane.showInputDialog("Entrecomumafrase");//Ex:Estounaminhacasapalavra_retirar_frase=JOptionPane.showInputDialog("Entre com uma Palavra que contenha na frase");//Ex:casapalavra_coloca_frase=JOptionPane.showInputDialog("Entre com a palavra pra trocar com a Palavra Retirada");//Ex:escola}
Você não pode usar replace (que aliás não faz o que você quer - replace serve apenas para trocar um caracter por outro, o que normalmente é inútil), mas pode usar replaceAll?
Isso é coisa de escola.
De qualquer maneira, é só chato. Procure saber como é que funcionam os métodos indexOf e substring. Lembre-se que indexOf retorna -1 se não achar, e a posição da palavra procurada, se achar (a posição começa por 0).
Stringfrase="Teste muito loko e tosco p kramba";Stringretirar="muito";Stringcolocar="bem";if(frase.contains(retirar)){
System.out.println(frase.substring(0,frase.indexOf(retirar))+colocar+frase.substring(frase.indexOf(retirar)+retirar.length()));
}
ddmizu
Opa!
Replace funciona sim, fera!
Confere comigo:
String frase = "Estou na minha casa";
String palavra_retirar_frase = "casa";//uma palavra que contenha na frase
String palavra_coloca_frase = "BMW"; //uma palavra qualquer
System.out.println(frase.replace(palavra_retirar_frase, palavra_coloca_frase));
Abcs!
T
thingol
Hum, eu ia tomar pau na certificação. De fato, há um método replace (CharSequence, CharSequence) que troca uma seqüência fixa por outra seqüência fixa - ela apareceu no Java 5.0.
ddmizu
SAuhuashaushusaHuhasuHASuhASUH!
Por isso q eu gosto de sempre conferir esses métodos no ‘ctrl + espaço’ do Eclipse!
D
dnsmaster
Obrigado pela ajuda de todos vcs… Mas a segunda do pedrosa foi a que mais me ajudou…Devo uma original pra ele…rs… Pedrosa vc pode me explicar o que faz esses comandos ?
*Brinca com coisa séria não, hein? Vou cobrar essa Original!
Pedrosa
dnsmaster:
Obrigado pela ajuda de todos vcs… Mas a segunda do pedrosa foi a que mais me ajudou…Devo uma original pra ele…rs… Pedrosa vc pode me explicar o que faz esses comandos ?
1 Primeiramente o if do contains verifica se a ocorrencia a ser trocada existe na sua frase.
2 Faço um um substring de 0 ate posição da String a ser retirada e concateno a nova String
3 Monto o resto da frase com outro substring a partir da posição da String a ser retirada que caso foi substituida + tamanho desse String até o fim note que nesse substring nao coloco a posição final pois não preciso por que vai ate fim.
Estude a classe String e Expressão Regular que em muitos casos pode salvar sua pele!
hicans
Para ficar bem mais simples esse problema, seria usar o StringBuiler(or Buffer).
Usuaria os metodos delete e insert (apos achar a subString), na hora de modificar a frase.
8)
renanpontez
To iniciando java agora, mas a resposta do ddmizu, é muito de boa.
Pedi pra digitar uma frase com o nome do usuario e troquei o nome do cara por outra coisa. (Pra teste)
Tranquilo demais o frase.replace!
Dá pra ficar mais simples que isso? haha
Vlw
rmendes08
renanpontez:
To iniciando java agora, mas a resposta do ddmizu, é muito de boa.
Pedi pra digitar uma frase com o nome do usuario e troquei o nome do cara por outra coisa. (Pra teste)
Tranquilo demais o frase.replace!
Dá pra ficar mais simples que isso? haha
Vlw :)
Mais simples que isso impossível. Mas pessoal, mas tomem cuidado. Para trabalhos de faculdade é bem possível que o seu professor esteja interessado que você desenvolva o algoritmo para fazer a substituição. Usar API pronta nestes casos é pedir pra tomar bomba.
renanpontez
Pois é, tentei fazer como eu fazia em C, com repetição e tal, mas olhei esse tópico e resolveu, hahaha!