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

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

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

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

Q&A

解決済

4回答

7758閲覧

Java 計算結果をString で返すとは・・・?

yk-211

総合スコア34

Java

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

0グッド

0クリップ

投稿2015/05/21 04:23

編集2015/05/21 04:33

質問させていただきます。
足し算、引き、掛け、割り算を行うクラスを作成。
各々計算結果をStringで返すメソッドの作成をせよ。

という問題なのですが、Stringで返すとはどういったことですか?

四則演算のclassについては普通に作ればいけると思いますが、
その後がさっぱりです。
考え方だけでも教えていただけないでしょうか。


public static void main(String args[]){
double n=5;
double m=10;
System.out.println("n+m="+(n+m));
System.out.println("n-m="+(n-m));
System.out.println("nm="+(nm));
System.out.println("n/m="+(n/m));
}
}

ここまでは作成しております。

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

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

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

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

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

guest

回答4

0

四則演算クラスで、それぞれ演算するメソッドを作り、
最後にtoStrong()とかでreturnして、String型にしてあげればいいのではないでしょうか。

投稿2015/05/21 04:33

編集2015/05/21 04:35
kaputaros

総合スコア1844

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

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

yk-211

2015/05/21 04:35

回答ありがとうございます! まず四則演算の段階で、メソッドを作成しなければならないということでしょうか。
kaputaros

2015/05/21 04:38

mainメソッドがあるクラスではなく、 別に四則演算クラスを作成し、 足し算メソッド、引き算メソッド、掛け算メソッド、割り算メソッドをそれぞれ実装し、 計算した結果をStringで返せばいいんだと思いますよ。
yk-211

2015/05/21 04:43

回答ありがとうございます。 理解力が乏しく申し訳ありません。 ちょっと分かっていないので、 頑張ってやってみます。 ありがとうございます。
kaputaros

2015/05/21 05:04

java.lang.Mathクラスみたいなユーティリティクラスを自分なりに作っていけばいいのだと思うので、Mathクラスのクラス構成と呼び出し方を参考にしてみるといいとおもいますよ。 がんばってください。
guest

0

ベストアンサー

普通は計算にはint型やdouble型を使いますよね。
数値を使って計算する方法は知っていると思います。
その数値を使って、画面に表示する方法も知っているかもしれません。

しかし、以下のように数値を文字列に代入することはできませんね。

lang

1int a = 5; 2String b = a; // これはコンパイルエラー

こういう場合に、型を合わせることをキャストといいます。
Stringで返す、というのは、メソッドの戻り値をStringにしなさい、ということになります。
計算結果が数値だとそのままでは返せないので、Stringにキャストする必要があります。

キャストするには複数の方法がありますが、今回はString.valueOfメソッドを使います。

では、一つ一つ、確実に進めていきましょう。

①足し算、引き、掛け、割り算を行うクラスを作成。

lang

1// まずは空のクラスを作りましょう。名前がかぶらないように今回はMyMathにします。 2class MyMath 3{ 4} 5

②各々計算結果をStringで返すメソッドの作成をせよ。
各々計算結果、ということは、足し算、引き、掛け、割り算の計算結果をStringで返せ、ということになります。

lang

1class MyMath 2{ 3 // 足し算をして、Stringを返すメソッドを作成 4 String Add(int a, int b) { 5 // 返す時にStringに変換しましょう 6 return String.valueOf(/* 整数、実数 */); 7 } 8 9 // 同じように、引き算、掛け算、割り算のメソッドを作りましょう 10} 11

最後に、実際に使ってテストしましょう。

lang

1 public static void main (String[] args) 2 { 3 MyMath math = new MyMath(); 4 System.out.println(math.Add(1, 2)); // 3 と出ていれば完成! 5 }

ためしに、String.valueOf関数を除いて実行してみようとしてください。
ビルド時にエラーになるはずです。

投稿2015/05/21 05:00

編集2015/05/21 05:38
haru666

総合スコア1591

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

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

yk-211

2015/05/21 05:12

大変ご丁寧にありがとうございます! 教えていただいたとおり、自分でやってみます! 本当にありがとうございます。
yk-211

2015/05/21 05:49

実際に上のソースを入力すると、整数、実数のところはどうすればよろしいのでしょうか。
haru666

2015/05/21 06:02

今回は簡単な四則演算なので、Add関数(足し算)の整数の所では int a と int b を足すことになります。 a + b は int型の結果を返すので、それを渡して文字列に変換します。 String.valueOf(a + b); 理解を深めるために、以下のように計算と変換を別けてみてもいいですね。 int ret = a + b; return String.valueOf(ret);
yk-211

2015/05/21 06:08

ありがとうございます! 難しいですね。笑
yk-211

2015/05/21 06:21

実際に入力してみました。 いかがでしょうか。 class Caliculate{ String Add(int a, int b) { return String.valueOf(a+b); } String subtract(int a,int b){ return String.valueOf(a-b); } String multiply(int a,int b){ return String.valueOf(a*b); } String divide(int a,int b){ return String.valueOf(a/b); } public static void main (String[] args) { Caliculate calc = new Caliculate(); System.out.println(calc.Add(1, 2)); System.out.println(calc.subtract(1,2)); System.out.println(calc.multiply(1,2)); System.out.println(calc.divide(1,2)); } }
haru666

2015/05/21 09:09

はい、そういうかんじです…! ※スペルミスがあります…! calculateです これで整数同士の計算ができますね。 ただ、calc.divide(1,2)をしたら0.5ではなく0になってしまったのではないですか? どうやったら0.5になるか、それはまた考えてみてください。
guest

0

プログラムには型(単位、クラス、class)と呼ばれるものがあります。
型によって同じ式でも答えが異なります。

Javaでは1と"1"が違う意味合いを持ちます。

lang

1//int(数字)としての足し算 2System.out.println(1 + 1);//答えは2 3//String(文字)としての足し算 4System.out.println("1" + "1");//答えは"11"

lang

1 public static void main(String[] args) throws Exception { 2 int a = 1; 3 int b = 2; 4 System.out.println(addition(a,b)); 5 } 6//a,bというint型(数字)の値二つを受け取ってString型(文字列)で返す 7 private static String addition(int a, int b) { 8 return new Integer(a+b).toString(); 9 }

投稿2015/05/21 04:59

編集2015/05/21 05:00
9a48wy3khhgg9t3

総合スコア106

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

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

yk-211

2015/05/21 05:10

ありがとうございます。 この要領であとの3つもやったらいいのでしょうか。
guest

0

int 型ではなくstring 型という事でしょう
例:return n*m+"";

投稿2015/05/21 04:37

kouji

総合スコア29

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

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

yk-211

2015/05/21 04:51

ありがとうございます。 そこは分かっているのですが、どのようにしていいのか 分からず・・・ 調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問