2016-04-13 31 views
1

Bir kullanıcı bir harfle yazdığında ve daha sonra kaç atlamanın gerektiğini yazarken sorun yaşıyorum. Örneğin, kullanıcı harfleri abc olarak yazılır, daha sonra atlanması gereken 2 rakam yazılır, çıktı cdf, Programımda bu iyi çalışıyor. Ancak bir kullanıcı xyz'de yazdığında, o zaman numara 4'tür. Programım çalışmıyor. Ayrıca, z harfi olan tüm harfler çıktıyı göstermeyecektir. Örneğin xyz, atlanacak olan sayı 1'dir, çıkış sadece yz olacaktır.Harf yazarken çalışmayan harfler atılıyor

public class Test2 { 

private Scanner sc = new Scanner(System.in); 
private char characters[]=  {'a','b','c','d','e','f','g','h','i','j','k','l','m', 
     'n','o','p','q','r','s','t','u','v','w','x','y','z'}; 

}

+0

'f' döngülerinizin üst sınırı yoktur. Kodunuzun ne yaptığını açıklayabilir misiniz? –

+0

@TimBiegeleisen kodum, bir kullanıcı tarafından girilen harfi alacak, daha sonra kullanıcı kaç tane atlayacağını yazacaktır. Örneğin, ben a yazın, sonra 1 yazın. b + 1 olacağı için çıktı b olacaktır. ama z yazıyorsa ve 1 atlanacak bir sayı olarak çıktı yoksa çıktı yoktur. –

+0

Ve çıktı z ve "1" için ne atlamalı? –

cevap

1

Ne arıyorsun mektup ofset durumunda alfabenin başlangıcına etrafında "sarar" bu sayede modül işlevsellik çeşit olduğu mektup z geçmiş gider düşünüyorum . Bu kodu deneyin:

String alphabet = "abcdefghijklmnopqrstuvwxyz"; 
for (int f=0; f < text.length(); f++) { 
    int index = alphabet.indexOf(text.charAt(f)); 
    System.out.println(alphabet.charAt((index + num) % 26)); 
} 

Bu kod parçacığı IntelliJ üzerinde ve giriş xam için test edilmiş ve 4 doğru çıktı beq verir.

+0

düzenliyor. Vay anladın doğru. –