Ir ao conteúdo
  • Cadastre-se

Duas String misturadas em uma terceira


Francisco Falcão

Posts recomendados

Boa Tarde a todos!

Sou novato aqui no fórum, espero muito poder aprender o máximo com todos.

Amigos, me deparo com um problema. preciso desenvolver um programa que leia duas Strings e as misture em uma terceira inicialmente limpa.

ex.: String1: ola

String2: 012

String3 Resultante: o0l1a2.

o código ja não esta completa mas ai está ele pra vocês terem uma ideia de como estou raciocinando. Em C, acho que ja teria resolvido, mas sou iniciante em Java.


public class QuestaoUmArray {
public static void main(String args[]){
String a,b,c;
int tamanho;
a = JOptionPane.showInputDialog("Digite a primeira String: ");
b = JOptionPane.showInputDialog("Digite a segunda String: ");

if(a.length()>b.length())
tamanho = a.length();
else
tamanho = b.length();
for(int i=0;i<=tamanho;i++){
c = a.substring(i);
}
JOptionPane.showMessageDialog(null,"C:"+c );
}

}
import javax.swing.JOptionPane;

Agradeço a ajuda e paciência de todos.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá amigo, bem vindo ao fórum.:)

Bem, você poderia fazer o seguinte: obter o tamanho das duas strings e criar um loop que vai de 0 até o valor da soma dos tamanhos das strings. Antes desse loop você cria dois contadores, o str1 e str2. Então dentro desse loop você lança um número aleatório, se este número for divisível por 2 e str1 for menor que o tamanho da primeira string, você pega o caracter na posição str1 e concatena na terceira string, se o número não for divisível por 2 e str2 for menor q o tamanho da segunda string, você pega o caracter na posição str2 e concatena na terceira string.

Outra possibilidade até mais fácil é você utilizar a classe StringBuffer. No caso você poderia concatenar as duas Strings de cara e então ir modificando essa terceira String(que está armazenada no StringBuffer), mais uma vez você poderia dentro de um loop lançar um número aleatório e apagar um caracter nesta posição da string e depois adicioná-lo no final.

Assim você faz uma bela mistureba.;)

Caso algo não tenha ficado claro é só dizer que eu explico melhor.

Abraço.

Link para o comentário
Compartilhar em outros sites

Entendi sim Goliathvv!

só queria saber porque da maneira que tentei não deu certo. tentei posicionar campo por campo com charAt, e depois tentei com substring. Sempre me retornava um erro me falando que a terceira string que eu deveria preencher deveria ser uma variável.

Muito obrigado pelos toques.

abraços.

Olá amigo, bem vindo ao fórum.:)

Bem, você poderia fazer o seguinte: obter o tamanho das duas strings e criar um loop que vai de 0 até o valor da soma dos tamanhos das strings. Antes desse loop você cria dois contadores, o str1 e str2. Então dentro desse loop você lança um número aleatório, se este número for divisível por 2 e str1 for menor que o tamanho da primeira string, você pega o caracter na posição str1 e concatena na terceira string, se o número não for divisível por 2 e str2 for menor q o tamanho da segunda string, você pega o caracter na posição str2 e concatena na terceira string.

Outra possibilidade até mais fácil é você utilizar a classe StringBuffer. No caso você poderia concatenar as duas Strings de cara e então ir modificando essa terceira String(que está armazenada no StringBuffer), mais uma vez você poderia dentro de um loop lançar um número aleatório e apagar um caracter nesta posição da string e depois adicioná-lo no final.

Assim você faz uma bela mistureba.;)

Caso algo não tenha ficado claro é só dizer que eu explico melhor.

Abraço.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Analisei o seu código e verifiquei alguns erros. Primeiro você não inicializou a String c, então o código não compilaria. E há uma erro no que diz respeito ao algoritmo que você utilizou. Você cria uma iteração com uma condição de para falha, afinal na seguinte situação:

a = "casa";

b = "carros";

Será informado que tamanho = 6, e quando você for obter a substring de a na posição 5 já haverá um erro(até se você mudar de <= para < na condição o problema ainda persiste). E o que você faz naquela interação é apenas obter a substring que vai da posição i até o fim da string original e atribui esta a c, então não está conseguindo atingir o objetivo que você deseja.

Caso algo não tenha ficado claro é só dizer que eu explico melhor.

Abraço.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!