2017-06-05 14 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(); 

出力は、1行でy = 3、次でx + 4です。私は彼らに同じ行にいてほしいです。これはどうすればいいですか?

+0

あなたがそれを必要な理由そう? –

+0

このような入力をしても問題ありません - 3 4? – tom

答えて

0

私はあなたがそこで何をしたいのかは分かりませんが、System.out.printを1つだけ使用する必要がありますか?あなたのコードの一番下に例:

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

FIY:文字列メッセージの%dはint値の略です – Rivalez

+0

これは質問に答えません。 OPはEnterを押して1行戻して結果を印刷することを望んでいる。 – Yahya

+0

Rivalez、それは簡単な解決策です。ユーザーがタイプとして線形方程式を構築できるようにしたい。 Yahyaは正しいアイデアを持っています。 – Electrimatics

0

なぜあなたはそれを望んでいるあなたの質問を理解するのは紛らわしいですか?

しかし、ここにあなたに役立つかどうか試してみることができるスニペットがあります!

3 4 
y=3 x+4 

あなたはそれが役に立つ見つけられない場合は、あなたの質問を更新 - ここ

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]); 
    } 

} 

は、あなたが得ることができるものです。それに応じて更新します。

+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

関連する問題