質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

4654閲覧

System.out.printからSystem.out.writeへの書き換え

gpsgpsgps

総合スコア20

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2016/05/11 12:38

単純な足し算プログラムの書き換えができません。

System.out.printではなく、System.out.writeを使用するプログラムに書き換えたいのですが、
うまくいきません。どのようにすればよいでしょうか。

★書き換え前(System.out.printを使用)★

import java.util.Scanner;

public class Sample{

public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.print("number1="); int num1 = s.nextInt(); System.out.print("number2="); int num2 = s.nextInt(); System.out.print(num1 + num2); }

}

☆書き換え後(System.out.writeを使用)☆

public class Sample{

//mainメソッドの文字を出力 static void syuturyoku(char[] str) { int i = 0; while (i < str.length) { System.out.write(str[i]); i++; } } public static void main(String[] args) throws Exception{ char[] num1 = "num1=".toCharArray(); char[] num2 = "num2=".toCharArray(); syuturyoku(num1); System.out.write('\n'); int num1 = System.in.read()-'0'; System.out.write('\n'); syuturyoku(num2); System.out.write('\n'); int num2 = System.in.read()-'0'; System.out.write('\n'); /*計算結果の出力方法がわかりません*/ }

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

数値を文字列に変換してやるというのはどうでしょうか

System.out.print(num1 + num2);

String str = "" + (num1 + num2);// int値(num1+num2)をStringにする)
byte[] buf = str.getBytes();// Stringをbyte[]にする
System.out.write(buf, 0, str.length());// byte[]をwriteで書き出す

java

1public static void main(String[] args) { 2 Scanner s = new Scanner(System.in); 3 4 // System.out.print("number1="); 5 String str1 = "number1="; 6 System.out.write(str1.getBytes(), 0, str1.length()); 7 8 int num1 = s.nextInt(); 9 10 // System.out.print("number2="); 11 String str2 = "number2="; 12 System.out.write(str2.getBytes(), 0, str2.length()); 13 14 int num2 = s.nextInt(); 15 16 // System.out.print(num1 + num2); 17 String strA = "" + (num1 + num2);// int値(num1+num2)をStringにする) 18 byte[] buf = strA.getBytes();// Stringをbyte[]にする 19 System.out.write(buf, 0, strA.length());// byte[]をwriteで書き出す 20} 21

投稿2016/05/12 07:49

HiroshiWatanabe

総合スコア2160

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

まず、同じ変数名で変数の宣言はできません(num1,num2をどちらもchar[]とintで宣言している)。
read()メソッドは1文字しか読まないので、たとえ複数桁の数字を入力していたとしても1桁の整数にしかなりません。先頭がマイナスだった場合や、区切り文字を考慮してループで数字を読んでいき、10進法で計算しながら読み込んでいくしかありません。

投稿2016/05/11 16:09

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問