Javaの文字列操作に関する質問(その2)

このQ&Aのポイント
  • Javaの文字列操作について質問があります。
  • 与えられた文字列を特定の規則に従って変換する方法を知りたいです。
  • 変換前の文字列を変換後の文字列へ変換する際、最上位の文字はそのままで、それより下の桁の文字は0とする方法を探しています。
回答を見る
  • ベストアンサー

javaの文字列の操作に関する質問(その2)

下記の如く、文字列を変換するサブルーチンはどうなるでしょうか。 注)文字列の文字は10進数のみですが、小数点を含むことがあります。 変換前の文字列 変換後の文字列 "978" ---------->"900" "12" ---------->"10" "56789" ------->"50000" "7" ------------->"7" "978.0" ---------->"900" "12.9" ---------->"10" "56789.5" ------->"50000" "7.9" ------------->"7" 変換規則:最上位の文字はそのままで、それより下の桁の文字は0とする。 簡単で旨く変換できる方法はありますか? 以上、宜しくお願いします。

  • Java
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.1

単純にループで1文字ずつ処理していけば良いのでは? 処理のルールとしては↓の様な感じになるでしょう。 ・1文字目はそのまま出力する。 ・2文字目以降は0に変換する。 ・ただし、小数点が現れたらその前の文字までで終了する。 例) static String convert(String source) { StringBuilder result = new StringBuilder(); int sourceLength = source.length(); for (int i = 0; i < sourceLength; i++) { char ch = source.charAt(i); if (ch == '.') break; result.append(i == 0 ? ch : '0'); } return result.toString(); } ※ 入力が null になるケース、数値と小数点以外が含まれるケース、小数点が先頭になるケースなどは考慮されていません。

bakabon_X
質問者

お礼

root139 さま 丁寧、明快な回答有難うございました。

関連するQ&A

  • 文字列変換マクロ

    小数点以下5桁(B列)をC列に文字列として変換したいです。 (B列は3.62%入力で表示形式をパーセンテージの小数点以下5桁で表示) データ量が多いためVBA作成希望です。どなたか教示お願いします。

  • 文字列操作(ExcelのVBAですが)

    特定のExcelセル内にある文字列について、 例えば、 138.40.8.7 と入っている場合、 138.40.08.7 に、 35.9.1.6 と入っている場合、 35.09.01.6 にするVBA関数を作りたいのです。(セル関数でもかまわないですが) つまり、小数点で区切られている2番目と3番目の数字が 一桁の場合、頭に0を付けて、必ず二桁になるようにしたいわけです。 どなたか、ご教授くださいませ。 よろしくお願い致します。

  • [javascript]文字列操作いろいろ・・・。

    こんばんわ・・・。 VBでは簡単にできていた文字列操作もJavaスクリプトでは・・・どうなんでしょうか・・・。 MOJIRETU = "ABCDEFG" とあるとします。 (1)文字数取得  and1 = 7 としたい。 (2)範囲指定の抜き取り  ans2 に左から3番目から2桁を取りたい!  ans2 = CD としたい。 (3)左の1番目から1桁取りたい  ans3 = A としたい。 (4)右から1桁とりたい。  ans4 = G としたい。 以上4点です。 いずれもVBなら一発でできる内容ですが・・・。 Javaスクリプトってコマンドが少ないから困ります・・・(泣)

  • 文字列操作 挿入

    エクセルにおける文字列操作において 123X456X890 1234X2345X3456 のような、桁数がバラバラな状態で文字列データがあった際、 1.全てを14桁に揃える 2.文字「X」を5及び10桁目に持ってくる   (つまりは14桁の文字数で、形式を揃える) 様な文字列操作を行うに、どの様な手法があるでしょうか? お分かりになる方、ご教授いただけますと助かります。

  • 整数を1000で割り小数点つけた形の文字列に変換したい・・(例12000→12.000)

    VB.NETです。 TextBoxに入力された整数(例12000)を、1000で割り、小数点第3桁まで有効にして、表示したいです。 String.Format(TextBox値, "#.000")でやろうとしていますが、“12”で表示されてしまいます。 小数点を有効した形で、文字列に変換するには、どうすればよろしいでしょうか?

  • Excel操作(数値型パーセントの表示を文字列に)

    現在、セルに 10.5% と表示されている数値型データをそのまま文字列の"10.5%"に換えるにはどうしたらよいでしょうか。 今は、文字列にすると、0.105 のように小数点表示に切り替わってしまいます。

  • 小数点を文字列に

    小数点(floatなど)を文字列に変換するにはどうしたらいいでしょうか? (char*)でするとエラーがでます。 どのようにしたらいいでしょうか? よろしくお願いいたしますm(__)m

  • 【Access2000】文字列の操作について

    Access2000で文字列の操作について質問です。 前任者が突然退職してしまったため、やり方が分からず困っています。。。 ■文字列の操作について 姓(フリガナ)と名(フリガナ)の文字列を下記仕様に変換したいと思います。 【変換前】   姓(フリガナ) 名(フリガナ)    ⇒全角カナで2つの項目に分かれている        【変換後】   姓名(フリガナ)    ⇒それぞれ半角カナに変換し、1つの項目に結合する    ⇒結合後のバイト長は30バイト、右詰で空白は半角スペースで埋める ■レコードのカウント処理について ・条件に合致したレコード数をカウント ・レコード数を右詰にし、前に0をつける(12バイト) Accessに詳しい方、ご返答いただけると助かります。

  • 8桁文字列を16進数バイト配列に変換

    お世話になります。 VB2005を使用しています。 温調器から温度データを引っ張るプログラムを作成しています。 8桁の文字列を16進数バイト配列に変換したいのですが、GetBytesでは10進数バイト配列に変換されてしまいます。 8桁の文字列又は10進数バイト配列を16進数バイト配列に変換する方法はないでしょうか? 文字列を1文字ずつ16進数に変換して配列に組み込んでいくしかないのでしょうか? よろしくお願い致します。

  • Excel 文字列にする関数

    エクセルが苦手なので教えてください! 選別番号で6桁の数字を使っているんですが、頭の数字が0から 始まるものがあり、セルに入力するとその選別番号だけ5桁に なってしまいます。 文字列にすればいいということだけはわかっているのですが、 すでに数字が入っている列に対して、関数を使って以下のような ことはできますか? (1)選別番号が5桁だったら、頭に0をつけて6桁にする、  かつ文字列にする (2)選別番号がすでに6桁だったら、そのまま文字列に変換 宜しくお願いします!

専門家に質問してみよう