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

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

ただいまの
回答率

87.51%

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

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 6,053

score 39

質問させていただきます。
足し算、引き、掛け、割り算を行うクラスを作成。
各々計算結果を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("n*m="+(n*m));
        System.out.println("n/m="+(n/m));
    }
}

ここまでは作成しております。
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

+1

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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/05/21 13:35

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

    キャンセル

  • 2015/05/21 13:38

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

    キャンセル

  • 2015/05/21 13:43

    回答ありがとうございます。
    理解力が乏しく申し訳ありません。

    ちょっと分かっていないので、
    頑張ってやってみます。
    ありがとうございます。

    キャンセル

  • 2015/05/21 14:04

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

    キャンセル

checkベストアンサー

0

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

しかし、以下のように数値を文字列に代入することはできませんね。
int a = 5;
String b = a; // これはコンパイルエラー
こういう場合に、型を合わせることをキャストといいます。
Stringで返す、というのは、メソッドの戻り値をStringにしなさい、ということになります。
計算結果が数値だとそのままでは返せないので、Stringにキャストする必要があります。

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

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

①足し算、引き、掛け、割り算を行うクラスを作成。 
// まずは空のクラスを作りましょう。名前がかぶらないように今回はMyMathにします。
class MyMath
{
}

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

class MyMath
{
    // 足し算をして、Stringを返すメソッドを作成
    String Add(int a, int b) {
        // 返す時にStringに変換しましょう
        return String.valueOf(/* 整数、実数 */);
    }

    // 同じように、引き算、掛け算、割り算のメソッドを作りましょう
}

最後に、実際に使ってテストしましょう。
    public static void main (String[] args)
    {
        MyMath math = new MyMath();
        System.out.println(math.Add(1, 2)); // 3 と出ていれば完成!
    }

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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/05/21 15:08

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

    キャンセル

  • 2015/05/21 15: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));
    }
    }

    キャンセル

  • 2015/05/21 18:09

    はい、そういうかんじです…!
    ※スペルミスがあります…! calculateです

    これで整数同士の計算ができますね。
    ただ、calc.divide(1,2)をしたら0.5ではなく0になってしまったのではないですか?
    どうやったら0.5になるか、それはまた考えてみてください。

    キャンセル

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/05/21 13:51

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

    キャンセル

0

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

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

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

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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/05/21 14:10

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

    キャンセル

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

  • ただいまの回答率 87.51%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る