java substringを使って文字列の一部を取得する - Stringクラス ホームページ制作 | 墨田区

java substringを使って文字列の一部を取得する – Stringクラス

LINEで送る
Pocket

Java で文字列から一部分を取り出すためには substring を利用します。
取得部分の指定はインデックス番号で指定します。
文字列が null の場合には、NullPointerException が発生しますので注意が必要です。




【PR】マジか?!「アレ」してるLINEスタンプっていったい・・・


API ドキュメントには以下のように記載があります。

API ドキュメント
substring
public String substring(int beginIndex,int endIndex)

この文字列の部分文字列である新しい文字列を返します。
部分文字列は、指定された beginIndex から始まり、インデックス endIndex - 1 にある文字までです。
したがって、部分文字列の長さは endIndex-beginIndex になります。 
例: 
 "hamburger".substring(4, 8) returns "urge"
 "smiles".substring(1, 5) returns "mile"
パラメータ:
 beginIndex - 開始インデックス (この値を含む)
 endIndex - 終了インデックス (この値を含まない)
戻り値:
 指定された部分文字列
例外:
 IndexOutOfBoundsException - beginIndex が負の値である場合、endIndex がこの String オブジェクトの長さより大きい場合、あるいは beginIndex が endIndex より大きい場合

インデックスって?

インデックスとは下記のようなイメージと思ってください。
インデックスは、0 から始まります。


“saka-en”という文字列のインデックス

  • インデックス 0 ⇒ s
  • インデックス 1 ⇒ a
  • インデックス 2 ⇒ k
  • インデックス 3 ⇒ a
  • インデックス 4 ⇒
  • インデックス 5 ⇒ e
  • インデックス 6 ⇒ n

“サカエン”という文字列のインデックス

  • インデックス 0 ⇒
  • インデックス 1 ⇒
  • インデックス 2 ⇒
  • インデックス 3 ⇒

インデックスは「半角文字」であっても「全角文字」であっても、
1 文字に対して 1 つずつ増加します。


サンプルソースとテスト

では、早速サンプルでテストしてみましょう。

  1. “saka-en”という文字列から、”ka”を取得する。
  2. “サカエン”という文字列から、”カ”を取得する。
System.out.println("saka-en".substring(2,3));
System.out.println("サカエン".substring(1,2));

結果

結果はこうなります。

k
カ

しかし、値が必ず保障されている場合はいいのですが、別のメソッドを呼び出しし、
null が戻るケースがある場合は、注意が必要です。
NullPointerException が発生します。

例えばこんなケースです。

public static void main(String[] args) {
    String substr = substr();
    System.out.println(substr.substring(1,2));
}
private static String substr() {
    return null;
}

これは極端な例ですが、可能性がある場合は注意が必要です。

NullPointerException を回避するために、StringUtils などのユーティリティクラスを用意し、その中にこんな感じのメソッドを用意するとよいでしょう。

/**
 * この文字列の部分文字列である新しい文字列を返します。<br />
 * 対象文字列が null の場合は、空文字列を返します。
 *
 * @param value 対象文字列
 * @param beginIndex 開始インデックス (この値を含む)
 * @param endIndex 終了インデックス (この値を含まない)
 * @return 指定された部分文字列
 */
private static String substring(String value, int beginIndex, int endIndex) {
	if ( value != null )
		return value.substring(beginIndex, endIndex);
	else
		return "";
}

対象文字列が null の場合は、空文字列を返します。
これにより、NullPointerException を回避できます。
先ほどのソースを直すとこんな感じになります。

public static void main(String[] args) {
    String substr = substr();
    System.out.println(StringUtils.substring(substr,1,2));
}
private static String substr() {
    return null;
}

こちらのページでは、左から指定された文字数を取得したり、右から指定された文字数を取得したりする方法をご紹介しています。合わせてお読みください。
>Java 左から右から指定された文字数を取得する方法 – クラス String


文字列操作は、実務では本当によく利用します。
基本をきっちり抑えておきましょう。

おつかれさまでした。

LINEで送る
Pocket

この記事がお役に立ちましたら シェア をお願いいたします。

Javaの勉強が思うように進まないときは!

Javaの勉強が思うように進まないのであれば、プロに直接質問ができる プログラミングスクール を検討してみてはいかがでしょうか?プログラミングスクールに申し込めば、短期間で一定のスキルを身に着けることができます!

Javaコースあり!オンライン完結型 テックアカデミー TechAcademy [テックアカデミー]

どこかに通う必要なく、自宅でプログラミングやアプリ開発を学ぶことができるのが特徴のスクールです。未経験からプロになるまで最短4週間という、超短期集中型の学習ができます。年齢層は10代〜40代の男女が中心で、学引があり多くの学生が受講しているそうですよ。オンラインで受講ができるスクールですので、全国どこからでも学習ができますね。

更にさらに、パーソナルメンターにチャット質問できちゃうんです!!

これは素晴らしいことですよ!ハマったり困ったことが起こるのがプログラミングの世界。知っている誰かに聞けば数分で解決することが、自分だけだと何時間もかかったりしますから!いや、これホントですよ。

しかし、便利な世の中になりましたよねー。一昔前ではオンラインで学習できるなんて、思いもよりませんでしたから。講師もバリバリのエンジニアですので、現場で使えるスキルを教えてもらえます。なんとも素晴らしいスクールがあったものですね。学割を使えば社会人より半額以下で受講できますから、学生さんには超おすすめです。

これから Java プログラミングを勉強して、将来はプログラマーとして活躍したいと思っている方には、就職保証付きJavaエンジニアコース というのがおすすめです。就職先まで保証してくれるとなれば、もう安心して学習に専念できますね。夢への第一歩はここから始まるのかも。あ、将来はライバルですね^^

オンラインスクールですから営業エリアは全国です。
気になる方は一度チェックしてみてください。無料の動画説明会も常時開催していますよ。


Javaコースあり!未経験者にウケてる KENスクール パソコンスクール・パソコン教室 【KENスクール】個別指導のWeb-DTP・OA・IT PCスクール

理解度や学習ペースに合わせて、一人ひとりが納得して前進できる授業を提供してくれるのが特徴です。特に課題製作は現場さながらで、実務に即したものとなっていますので短期でのスキルアップが望めます。自宅学習のサポートも充実していて、授業内容をいつでもビデオで振り返ることができるのもうれしいですね。好きな時間に好きな場所で、無理なくスケジューリングできるので、仕事の忙しい方でも柔軟に学ぶことができますよ。

更にさらに、なんと 就職サポート をしてくれるというのですから驚きです!!

履歴書の書き方から面接指導、求人の紹介など、具体的な就職先まで提案してくれるんです!私も「もっと早く出会いたかったなぁー、こんなスクール」・・・って思っちゃいました^^

東京・神奈川・愛知・大阪を営業エリアとされています。
まずは気軽に 無料体験予約 に申し込んでみるのもアリですよ。


コメントを残す

お名前 (必須)
メールアドレス
(アドレスは公開されません)

コメント(必須)

Trackback URL