Troca de letras

2 respostas
Thais1
Olá! eu estava tentando fazer um programa que trocasse uma letra de uma palavra pela 3ª letra a sua frente.. por ex.: a->d.. e assim por diante. Fiz o seguinte código, mas tá dando erro na parte em que eu "somo" o char com 3. Mas daria pra fazer isso com um char, não? pq se eu coloco char x='a'+3; não aponta erros... segue abaixo o código que fiz.
Scanner leitor=new Scanner(System.in);
		System.out.println("Digite a palavra a ser cifrada");
		String original=leitor.next();
		original=original.toLowerCase();
		char[]letras=new char[original.length()];
		for(char i='a'; i<'z'; i++){
			for(int j=0; j<original.length(); j++){
				letras[j]=original.charAt(j);
				if(letras[j]=='x')
					letras[j]='a';
				if(letras[j]=='y')
					letras[j]='b';
				if(letras[j]=='z')
					letras[j]='c';
				letras[j]=(char)letras[j]+3;
					
								
				}
			}	
			
		}
Desde já muito obrigada :D

2 Respostas

W

Veja e teste se é isso que precisa…

public class Test {
	public static void main(String[] args) {
		final Test test = new Test();
		System.out.println(test.cifrar("ABC"));
	}
	
	public String cifrar(final String valor) {
		final char[] chars = valor.toCharArray();
		
		final StringBuilder charsNew = new StringBuilder();
		for (int i = 0; i < chars.length; i++) {
			charsNew.append((char) (chars[i] + 3));
		}
		
		return charsNew.toString();
	}
}

Espero ter ajudado…

H

acho que esse aki é bom

import javax.swing.JOptionPane;

public class Rodar {

   
		public static void main(String[] args) {

		String novonome = "";

		String nome = JOptionPane.showInputDialog("entre com o nome").toLowerCase();

		String qtd = JOptionPane.showInputDialog("entre a chave");
		int valor = Integer.parseInt(qtd);
			
		String palavra = "abcdefghijklmnopqrstuvxwyz";
		
		
		for (int x = 0; x < nome.length(); x++){
				 
			for (int i = 0; i < palavra.length(); i++) { 
				
						
				if (palavra.charAt(i)== nome.charAt(x) ) {
				 					
					System.out.print("\n"+ "Tc("+nome.toUpperCase().charAt(x)+")"+" = " + "(" + i + " + " + valor +")" + " mod 26 = " + 
					(i + valor)% palavra.length()+ " = " +palavra.toUpperCase().charAt((i + valor)% palavra.length()));    
					
									
					novonome += palavra.charAt((i + valor)% palavra.length());
						
				}}}
		
		JOptionPane.showMessageDialog(null,novonome,"Resultado", JOptionPane.INFORMATION_MESSAGE);  
		
	System.out.print("\n"+"Tc = "+novonome.toUpperCase());
		 
	
	}}
Criado 30 de agosto de 2009
Ultima resposta 30 de ago. de 2009
Respostas 2
Participantes 3