2017-02-24 88 views
-6

我有一個任務。我的任務是,我需要寫一個代碼什麼應該要求2行字符串。然後再做一個。Java StringBuffer不能打印出撇號

我的意思是:第一行:kusk - 第二行:loope - 問題:kluosokpe 但是,如果我試圖給出這樣的話:這不是我,你能給我+錢嗎?

該問題只是錯誤消息。我現在可以做什麼呢?

我的代碼: import java.util.Scanner;

public class Main { 


    public static void main(String[] args) { 
     Scanner sc = new Scanner(System.in); 
     String first = sc.nextLine(); 

     String second = sc.nextLine(); 

     StringBuilder builderem = new StringBuilder(" "); 
     for(int i = 0; i < first.length(); i++){ 
      builderem.append(first.charAt(i)); 
      builderem.append(second.charAt(i)); 
     } 
     String base = builderem.toString(); 
     System.out.println(base); 
    } 

} 

謝謝你的幫助!

+0

看來英語不是你的母語,我很難理解你想要什麼...你可以嘗試翻譯,可能會產生更好的結果。你是否想要從用戶輸入中讀取兩個字符串(s1,s2),然後將它們組合在一起,以便它們是s1 [0] s2 [0] s1 [1] s2 [1] ...等等?如果是這樣,那麼你的for循環只能在s1的長度上運行,當s2比s1長時,尾隨字符會丟失,如果s1比s2長,那麼你會得到一個異常。 –

+0

保持答案儘可能簡單。刪除所有不需要再現錯誤的部分。 (有可能在這樣做的時候,你可以糾正你的代碼。) – betontalpfa

回答

3

Tom,

問題是一個字符串比另一個長。

import java.util.Scanner; 

public class Main { 

public static void main(String[] args) { 
    Scanner sc = new Scanner(System.in); 
    String elso = sc.nextLine(); 

    String masodik = sc.nextLine(); 

    String longestString = elso; 
    String shortestString = masodik; 
    if (shortestString.length() > longestString.length()){ 
    shortestString = elso; 
    longestString = masodik; 
    } 
    StringBuilder builderem = new StringBuilder(" "); 
    for(int i = 0; i < shortestString.length(); i++){ 
     builderem.append(shortestString.charAt(i)); 
     builderem.append(longestString.charAt(i)); 
    } 
    for(int i = shortestString.length(); i < longestString.length(); i++){ 
     builderem.append(longestString.charAt(i)); 
    } 
    String alapba = builderem.toString(); 
    System.out.println(alapba); 
} 
} 

請讓我知道它是否工作!

+0

這很好!謝謝你! –