2013-11-24 5 views
0

단어 사이에 공백을 넣는 데 어려움을 겪고있는 사람들. 내가해야 할 일은 Vogon으로 영어를 변환하는 것입니다.하지만 당신은 또한 5 글자의 공백을 추가해야합니다. 모든 아이디어는 여기에서 어떻게 할 것인가는 제 코드입니다. 당신이 uryybubjnerlbhqbvat ​​// 새로운 문구 // 사용자 입력을 어떻게하고단어 중간에 공백을 추가하는 방법

public static void main(String[] args) { 
    translateFromEnglish("hello"); 
    } 
    public static boolean detect(String phrase) { 
     return false; 
    } 
    public static String translateFromEnglish(String phrase){ 
     Scanner scan = new Scanner(System.in); 
     phrase = scan.nextLine(); 
     String NewString = ""; 
     for (int i = 0; i < phrase.length(); i++) { 
      if (phrase.charAt(i) == 'a') { 
       NewString += "n"; 
      } 
      if (phrase.charAt(i) == 'b') { 
       NewString += "o"; 
      } 
      if (phrase.charAt(i) == 'c') { 
       NewString += "p"; 
      } 
      if (phrase.charAt(i) == 'd') { 
       NewString += "q"; 
      } 
      if (phrase.charAt(i) == 'e') { 
       NewString += "r"; 
      } 
      if (phrase.charAt(i) == 'f') { 
       NewString += "s"; 
      } 
      if (phrase.charAt(i) == 'g') { 
       NewString += "t"; 
      } 
      if (phrase.charAt(i) == 'h') { 
       NewString += "u"; 
      } 
      if (phrase.charAt(i) == 'i') { 
       NewString += "v"; 
      } 
      if (phrase.charAt(i) == 'j') { 
       NewString += "w"; 
      } 
      if (phrase.charAt(i) == 'k') { 
       NewString += "x"; 
      } 
      if (phrase.charAt(i) == 'l') { 
       NewString += "y"; 
      } 
      if (phrase.charAt(i) == 'm') { 
       NewString += "z"; 
      } 
      if (phrase.charAt(i) == 'n') { 
       NewString += "a"; 
      } 
      if (phrase.charAt(i) == 'o') { 
       NewString += "b"; 
      } 
      if (phrase.charAt(i) == 'p') { 
       NewString += "c"; 
      } 
      if (phrase.charAt(i) == 'q') { 
       NewString += "d"; 
      } 
      if (phrase.charAt(i) == 'r') { 
       NewString += "e"; 
      } 
      if (phrase.charAt(i) == 's') { 
       NewString += "f"; 
      } 
      if (phrase.charAt(i) == 't') { 
       NewString += "g"; 
      } 
      if (phrase.charAt(i) == 'u') { 
       NewString += "h"; 
      } 
      if (phrase.charAt(i) == 'v') { 
       NewString += "i"; 
      } 
      if (phrase.charAt(i) == 'w') { 
       NewString += "j"; 
      } 
      if (phrase.charAt(i) == 'x') { 
       NewString += "k"; 
      } 
      if (phrase.charAt(i) == 'y') { 
       NewString += "l"; 
      } 
      if (phrase.charAt(i) == 'z') { 
       NewString += "m"; 
      } 




     } 
     System.out.println(NewString); 
     return phrase; 

      } 

콘솔 안녕하세요

+1

당신은'switch' 문을 사용하는 것이 좋습니다 반복되는'if' 대신에. – SimplyPanda

답변

0

for 루프에서 카운터를 유지하고 증가시킵니다. 문이 모두 StringBuilder보다 효율적으로 사용

count++; 
if(count % 5 == 0){ 
    NewString += " "; 
} 
+2

입니다. 또한 newString을 StringBuilder로 만들어 모든 문자에 전체 문자열 객체를 다시 작성하지 않는 것이 좋습니다. – aemxdp

0

다섯 번째 문자를 발견하고 for 루프 내에서, 문자열을 추가하려면이 같은 간단한 일을 포함 할 수 있습니다 :

if (i % 5 == 0){ 
    newString += " "; 
} 
+0

아, 내 문자열을 'NewString'으로 명명했기 때문에 코드가 작동하지 않습니다. Convention은 lowerCamelCase를 사용하여 객체의 이름을 지정합니다. – SimplyPanda

+0

그것은 우스운 판다이었다 나는 도움에 대해 계산 감사에 관해 당신에게 묻기 직전이었다. – ArsenicStealth

+0

이제 각 경우에 if 또는 right를 입력하십시오. NewString을 newstring 대신 가지고 계신가요? – ArsenicStealth

1

을 넣어 모든 경우의 끝에서 당신은 문자열을 만들 때마다 필요로하지 않기 때문에 :

String translatedString = "aaaaabbbbbeeeeecccccdddddfffffgggg"; 
    int numOfChars = 5; 
    StringBuilder vogon = new StringBuilder(); 
    for (int i = 0; i < (translatedString.length()/numOfChars); i++) { 
     vogon.append(translatedString.substring(i * numOfChars, (i * numOfChars) + 5)).append(" "); 
    } 

    // append any remaining characters 
    vogon.append(" ").append(translatedString.substring(translatedString.length()/numOfChars)); 

    System.out.println(vogon); 
관련 문제