2016-07-02 28 views
0

我一直在嘗試這個程序。但我沒有得到所需的輸出。Java中的Concat()

import java.util。*;

class MiscTest { 

    public static void main(String[] args) { 

     int i = 10; 
     double d = 4.0; 
     String s = "Lavante "; 

     Scanner scanner = new Scanner(System.in); 

     int j; 
     double dd; 
     String ss; 

     j = scanner.nextInt(); 
     dd = scanner.nextDouble(); 
     ss = scanner.next(); 

     System.out.println("\n" + (i + j)); 
     System.out.println(d + dd); 
     System.out.println(s.concat(ss)); 

    } 
} 

輸入我已經給:

Input

我得到的輸出:

Output

我需要整個句子 「Lavante是瑪莎拉蒂」 作爲輸出。但是,我只收到第二個字符串中的一個單詞。幫我。 在此先感謝。

+1

請張貼代碼,而不是截圖。 –

+0

停止發佈代碼截圖。製作屏幕截圖比複製和粘貼文本更困難。 –

回答

1

我猜你打提供double可變的輸入後回車鍵。嘗試代碼片段。

dd = scan.nextDouble(); 
ss = scan.nextLine().trim(); 
if (ss.isEmpty()) { 
    ss = scan.nextLine(); 
} 
+0

完美。正如我想要的。謝謝。 –

+0

如果我沒有錯,你正在解決HackerRank的日常挑戰。對? – piechuckerr

3

您需要使用nextLine()否則,Scanner在空白停止符使用next()

此外,在已使用scanner.nextDouble(),使用scanner.next()消費受先前呼叫讀取字符的其餘部分,就像下面。

dd = scanner.nextDouble(); 
scanner.next(); 
ss = scanner.nextLine(); 
+0

如果我使用nextLine(),它不讓我輸入第二個字符串。我只能輸入int和double。 –

+0

@DheerajVuppuluri好的,閱讀我的編輯。 –

+0

@DheerajVuppuluri檢查我的回答 – piechuckerr

2

您目前正在使用的next()函數,它是使用前空格

只取一個String假設輸入:你好世界 然後如果用戶使用next()

輸出:你好

採取串,直到行的末尾使用nextLine()

輸入:你好世界 如果使用nextLine用戶() 輸出:你好世界

+0

如果我使用nextLine(),它不讓我輸入第二個字符串。我只能輸入int和double。 –

+0

輸入字符串後需要按回車鍵 –

+1

明白了。謝謝! –