• ベストアンサー

Stringの一部分を取得したいのですが

教えていただきたいのですが。。 Stringで、"0-1-4-2-10"と文字が入っているとして、最後の"-"以降の"10" という文字を取得したいのですが、いい方法はないでしょうか? "-"以降の文字は桁数もバラバラなので、「substringで最後から何番目を取得」 とすることができません。。 StringTokenizerで"-"で区切って、最後の"-"以降の文字(何桁でも)だけ取得とかはできるのでしょうか?? 教えてください、お願いします

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

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

メソッドlastIndexOf()を使ってみては。

bibi5555
質問者

お礼

迅速に回答をいただいて、すごく助かりました! lastIndexOfで、"-"の場所を取得して、substringでそれ以降の文字だけ ちゃんと取れました! lastIndexOfは知らなかったので勉強になりました、ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • .NET Stringからバイト数を取得する。

    初歩的な質問で申し訳ありません。 Stringから桁数ではなくバイト数を 取得する方法を教えてください。 Dim a As String a = "00あ" とあった場合、 aから4という結果がほしいです。 よろしくお願いします。

  • 文字列の取得

    string.subString()のなどで文字列を指定文字数分取得する場合に、バイト数指定で取得する方法ってありますか? 教えてください。

    • ベストアンサー
    • Java
  • Stringの100と100.0を同一とみなす方法

    とあるフレームワークで計算するメソッドを通して計算させると、引数によって有効桁までのStringが戻り値として返されます。 そのStringの戻り値を使用して処理を分岐させたいのですが、幾分有効桁に問題があります。 (例) String p_str1 = "100" String p_str2 = "100.0" このp_str1とp_str2を等しいとみなしたいのですが、愚直に末尾から順番に文字を取り出し、最後の桁が0の場合は切り捨て(直前が.ピリオドの場合はピリオドモ含めて)てするような方法しか思いつきません。 それ以外にp_str1とp_str2を等しいとみなす方法はないでしょうか? よろしくお願いいたします。

  • バイト数の取得について

    Byteについて初心者なもので、詳しく教えて頂けませんか? 例)文字列:String str = "123あいう"; 5文字取得したい場合、     str.subString(0,5) ・・・ "123あい" と取得されますが、 5バイト取得("123あ")の場合、どのようにコーディングすればよろしいのでしょうか?

    • ベストアンサー
    • Java
  • Stringのフォーマットの変換方法(Java)

    Java実行時の引数として渡した14桁の数値(文字列)を、 ----- yyyy-mm-dd hh:mm:ss ----- の形式にフォーマット変換したいです。 (日時のように書いてますが、型はDateやTimestampではなくStringのままでもOK) 文字列をsubstringメソッドで区切って、 その後に「-」や「:」と+で文字列連結させる方法も考えたのですが、 そのようにせずにもう少しシンプルに変換する方法はありませんでしょうか?

    • ベストアンサー
    • Java
  • 文字列を分割するクラスについて

    住所のメソッドでの開発についてご質問がございます。 仕様 住所の配列は全角80(半角160)に格納される。 住所地名の途中で分割しないようにする。 80桁すべてに文字は格納されているときは20桁の4等分にする。 スペースで分割をおこなうようにする。 例1  実行前  札幌市 ○区 北○○○○○ 00-0-0-00      実行後  札幌市 ○区 北○○○○○,00-0-0-00,,      例1の場合20桁ずつ分割を考えると14桁目のスペースを利用してカンマ区切りで4つに分割 例2 実行後  あああああ いいいいい ううううう ええ     実行後  あああああ いいいいい ううううう ええ,,,     例2の場合文字がちょうど20桁なのでちょうどカンマ区切りで4等分  例3  実行前   あああああ いいいい ううううううううううう えええええ 0-00-000       実行後   あああああ いいいい,ううううううううううう えええええ,0-00-000,      例3の場合20文字だと区切りだと、うの領域の途中になるため      11桁目のスペースを利用して分割      そしてそこから20桁目を区切ろうとして次の区切りたい場所が      番地の途中になるため実行後のように、えで区切り4等分にカンマ区切り と基本的に住所分割をスペースを利用して住所の途中や番地の途中で 区切らないでカンマ区切りの4等分にするアルゴリズムを考えています。 private void 住所漢字(String 住所漢字, String 住所カナ, String 住民票住所漢字,PrintWriter out) { //(1)分割する文字列を生成 String str = new String(住所漢字); //(2)文字列をsplitメソッドで分割 String[] strAry = str.split(",", 0); { str = 住所漢字; } for (int i=0; i<strAry.length; i++) { } out.print(str.substring(0,20)+","+ str.substring(20,40) +","+ str.substring(40,60)+","+ str.substring(60,80)); }      現在は単純に全角80桁の配列に対して 20桁ずつの4等分に実行されるだけのプログラムになってます。 上記の例のような住所分割のアルゴリズムを開発する際 StringTokenizer st = new StringTokenizerのクラスは開発に有効でしょうか? また有効である場合のソース実行例の等のアドバイス、もしくは ほかに文字を分割するための便利なクラスがございましたら ご教授ください。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Java
  • 【C++/CLI】int型からString型への変換

    C++/CLIにて、int型変数の値 int test1 = -1; int test2 = -10; をString型に変換し「-1」「-10」といったような文字列に、 変換しようと思っています。 String::Format( "{0:D1}", test1 ); String::Format( "{0:D2}", test2 ); といった方法で可能なのは分かったのですが、 この方法だと、Formatの引数を値の桁数に応じて変えねばなりません。 ※String::Format( "{0:D2}", test1 );  のようにすると、「-01」となってしまうため。 桁数を意識せずに、int型変数の値をそのまま文字列に変換するような 良い方法があれば、ご教示お願いできませんでしょうか?

  • substringで文字を分割

    全角80桁の文字列を全角空白を利用して4分割したいのですが 下記にご質問内容を記載します。 String str = new String(住所漢字); Matcher j = pattern2.matcher(住所漢字); Pattern pattern2 = Pattern.compile("^.{1,20} ");で 文字列の先頭から始まって半角空白で終わる最大21文字 (最後の全角空白を含む)にマッチさせた文字列に Matcher j = pattern2.matcher(住所漢字); while(j.find()) { 正規表現で抜き出した文字列の文字カウントをチェック int mojiLength = i.group().length(); String iNewString = tmp.substring(mojiLength); out.print(j.group()+","+iNewString); として、正規表現でマッチさせた文字列以降を substringで抜き出したのですが それ以降の文字列も同じようにして substringで抜き出した20文字以降の文字列に 先に設定した正規表現を利用して分割して カンマ区切の4分割にしたいのですが この先の方法が分からず色々調べている最中です。 すいませんがぜひアドバイスお願いします。

    • ベストアンサー
    • Java
  • $_SERVER["QUERY_STRING"]の仕様について

    $_SERVER["QUERY_STRING"]を使用すると、クエリ情報(URLの"?"以降の文字列)を 取得できると伺ったのですが、私は、下記のように、 http://www.xxx.jp/zzz.php?url=【URL】 と、URLを値として渡すプログラムを作成しています。時にそのURL内にも「?」が 存在する場合もございます。 【例】 http://www.xxx.jp/zzz.php?url=http://www.aaa.com/ss/item.asp?code=007656&item=032648 今のところ、1番目の「?」以降、 url=http://www.aaa.com/ss/item.asp?code=007656&item=032648 を受け取ってくれてはいるのですが、何かのタイミングなどで、 2番目の「?」に反応し、バグを起こさないのか不安です。 どなたか、$_SERVER["QUERY_STRING"]の仕様についてご存知の方は いらっしゃらないでしょうか? 1番目の「?」にしか反応しないということがわかる、もしくは、 2番目の「?」にはこういう場合に反応するということがわかれば対処できるのですが。 どうぞよろしくお願いいたします。

    • 締切済み
    • PHP
  • 半角カナの文字列操作について

    通常10桁の半角カナの文字列があった場合下記のように String i = "イイイイイイイイイイ"; i.substring(0,5) + ","+i.substring(5,10) Systemout.println(i); として結果を イイイイイ イイイイイと文字列を分割しているのですが 10桁の文字列を半分に区切ろうとした場合 6文字目に濁点が存在した場合 String i = "イイイイバイバイ"; i.substring(0,5) + ","+i.substring(5,10) 結果が イイイイハ ゛イバイ と バの濁点とハが分割されてしまいます。 この半角カタカナの文字列でこの現象を 回避するために 文字列の中で濁点がヒットした場合 文字列の濁点を含んだ文字列の前か後ろで イイイイ ハ゛イバイ もしくは イイイイハ゛ イバイ のように 分割させたいのですがなにか良い方法はありませんでしょうか?? どうぞよろしくお願いします。

    • ベストアンサー
    • Java