2017-06-05 75 views
0

我有一個小的代碼段,我不知道如何解決。這是它:Java掃描儀:如何在輸入後保持相同的行

System.out.print("y="); 
while(!scan.hasNextInt()) scan.next(); 
m = scan.nextInt(); 
System.out.print("x+"); 
while(!scan.hasNextInt()) scan.next(); 
b = scan.nextInt(); 

輸出是:y = 3在一行上,和x + 4在下。我希望他們在同一條線上。我該怎麼做呢?

+0

你爲什麼需要它所以? –

+0

是否有這樣的輸入 - 3 4? – tom

回答

0

我不知道你想在那裏做什麼,但也許你只需要使用一個System.out.print?在你的代碼底部用例子:

System.out.print("y= %d x+%d", m , b); 
+0

FIY:字符串消息中的%d代表int值 – Rivalez

+0

這不回答問題。 OP按'Enter'鍵後退一行並打印結果。 – Yahya

+0

Rivalez,這是簡單的解決方案。我希望用戶能夠建立線性方程作爲類型。 Yahya有正確的想法。 – Electrimatics

0

理解你的問題爲什麼你想要它有點混亂。

但是,這裏有一個片段,你可以試試看看它是否對你有用!

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 


public class so1 { 
    public static void main(String[] args) throws IOException { 
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
     String arrayStr = br.readLine(); 
     String[] auxStr = arrayStr.split(" "); 
     int[] arr = new int[2]; 

     for(int i=0;i<auxStr.length;i++){ 
      arr[i]= Integer.parseInt(auxStr[i]); 
     } 

     System.out.println("y="+arr[0] + " x+"+arr[1]); 
    } 

} 

這裏是你可以得到什麼 -

3 4 
y=3 x+4 

更新你的問題,如果你不覺得它有用。我會相應更新。

+0

這不是我想要的,但問題已得到解答。似乎沒有簡單的方法來獲得我想要發生的事情。謝謝! – Electrimatics

+0

很高興知道這個.. – tom

0

看起來這是你的程序的外觀:

y=3<newline> 
x+5<newline> 

但你希望它看起來像:

y=3x+5 

有問題的換行來使用掃描儀和標準固有的緩衝性質輸入。爲了讓掃描器知道它到達了數字的末尾,必須有空格(空格,換行符等)。爲了讓程序接收來自STDIN的輸入,int的字符長度必須大於緩衝區大小,或者必須按下ENTER鍵。

TL; DR - 你想要的很難做到,也許根本不可能,只需要使用基本的標準。如果你真的想要你想要的輸出,你可能需要找到一個庫來與控制檯交互,使用它。

然而,如果你重構你的投入,你也許能夠得到的東西幾乎一樣好:

enter intercept: 5<enter> 
enter slope:  3<enter> 
y=3x+5 

您的代碼,修改,以產生輸出:

System.out.print("enter intercept:"); 
while(!scan.hasNextInt()) scan.next(); 
m = scan.nextInt(); 
System.out.print("enter slope: "); 
while(!scan.hasNextInt()) scan.next(); 
b = scan.nextInt(); 
System.out.println("y="+m+"x+"+b); 
+0

我的確在想這個解決方案,但我想看看我能不能打印出你寫的東西。謝謝! – Electrimatics