Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

引き算の結果なのですが

教えていただきたいことがあり掲示板を活用させていただきたいと思って書きます。

しょうもない質問かもしれませんが、
よろしくお願い致します。

複数のデータを集計し、結果を表に出力したいと考えています。
そこで、集計結果がマイナス(−)だった場合、
マイナス(−)ではなく、▲で表示したいと考えています。

-100 でなく、 ▲100 って感じです。

どのようにしたら、マイナスではなく、▲表示にできるでしょうか?

よろしくお願い致します。

単純なことなのかもしれませんが、2時間考えてもわからないのでよろしくお願い致します。

int a = 100;
int b = 150;
int c = a-b;
String d = String.ValueOf(c);
ここで、replaceやsplitやウダウダやってたのですが、
結局わからなかったので誰か教えてください。

7

回答

3089

閲覧

7件の回答

評価

0

>ウダウダやってたのですが、
「こう考えてみたけどできなかった」という質問のほうが、答えを聞くより勉強になる。
どこかの考え方がおかしかったか、単にコード上の小さな不備か、または最初から考え方が違ったのか。
まるまる答えを聞こうと思わないことだ。

評価

0

マイナスの記号を変換するのではなく、
結果に▲をつけるという方法をとればいいのではないですか?

int a = -100;
String result;
if (a < 0){
  a *= -1;  // 正の値に戻す
  result = "▲" + a.AsString;
} else {
  result = a.AsString;
}

もっと、スマートな方法があるかもしれまんが・・・

評価

0

String#replaceでできるんだけどな・・・。
どうやって、うまくいかなかったの?

評価

0

多分相手がマイナス(-)だから。
正規表現 マイナス
でググるとシアワセになれますよ。

評価

0

> a *= -1;  // 正の値に戻す

余談になりますが
a == Integer.MIN_VALUE
のときだけ注意が必要ですね。

評価

0

今回の場合は、ifの条件で回避できてるな。

評価

0

> 余談になりますが
> a == Integer.MIN_VALUE
> のときだけ注意が必要ですね。

念のため補足します。

-2^31 〜 2^31-1

の範囲においては -2^31 だけ絶対値を
intで表現できません。

ですので a が -2^31 のときはStringにしたのち
マイナス(-)を▲に置換するなどの方法をとる
ことになります。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。