[java] 文字列の一部を切り取る方法(substring)

こんにちは。

今回は文字列の一部を切り取る方法について解説します。
具体的には、String.substringメソッドの使い方の説明です。

ある文字列のx番目からy番目までの文字を抜き取るイメージです。

●文法
public String substring(beginindex, endindex)

beginindex: 開始位置のindexです。先頭からなら「0」となります。
endindex: 終了位置のindexに1を加えた値です。直観的ではないですが、endindex-beginindexが切り取り後の文字列長になるようです。


また、Stringクラスのメソッドですので、「切り取り元の文字列は変化せずそのまま」です。
切り取られた文字列は、元の文字列と別のオブジェクトとなります。

●覚え方
私はいつもド忘れしてしまうので、以下のような絵で覚えてます。
「20140725」という文字列の「年」を切り取りたい場合、以下になります。

"20140725".substring(0, 4) // ⇒「2014」が切り取られる

substring1

「20140725」という文字列の「月」を切り取りたい場合、以下になります。

"20140725".substring(4, 6) // ⇒「07」が切り取られる

substring2

「20140725」という文字列の「日」を切り取りたい場合、以下になります。

"20140725".substring(6, 8) // ⇒「25」が切り取られる

substring3

●サンプルプログラム
最後にサンプルプログラムで実際に試しましょう。

YYYYMMDD形式の日付リストをYYYY-MM-DD形式に変換して出力します。

●プログラム

package test.string.substring;

import java.util.ArrayList;
import java.util.List;

public class TestSubstring {

	public static final String SEPERATOR = "-";

	public static void main(String[] args){

		// リスト初期化
		List<String> list = new ArrayList<String>();

		// 文字列リスト作成
		list.add("20140701");
		list.add("20140702");
		list.add("20140703");
		list.add("20140704");
		list.add("20140705");

		for(String str : list){

			// YYYY-MM-DD形式で出力する
			System.out.println(str.substring(0, 4) + SEPERATOR + str.substring(4,  6) + SEPERATOR + str.substring(6, 8));
		}
	}
}

●実行結果

2014-07-01
2014-07-02
2014-07-03
2014-07-04
2014-07-05

スポンサードリンク

関連記事

no image

[Java][Jersey] JerseyでRESTfulなJAX-RS Webサービス作成

こんにちは、keiです。 今回はRESTfulなWeb Serviceの作成を行っていきます。

記事を読む

no image

[Java] CSVファイルの読み込み方法

こんにちは、kei0310です。 CSVファイルをJavaに取り込む方法を解説します。

記事を読む

no image

[Java][Spring] Spring3でDIしてみる!(アノテーション使用)

Spring3を使って、一番基本的な形のプログラムを作成してみます。 今回は、アノテーションを

記事を読む

no image

[Java] 日付の計算方法(DateFormat、Date、Calendar)

こんにちは、kei0310です。 Javaで日付を計算する方法について解説します。 まず

記事を読む

no image

[Java][MySQL] JavaからMySQLを使う方法

MySQLは、フリーでありながら商用としても使用できるパワーを持つデータベース(RDB)です。

記事を読む

no image

[Java] StringBuilderの使い方(Stringを連結するクラス)

今回は、可変長文字列クラスのStringBuilderを紹介します。 固定長文字列クラスのSt

記事を読む

no image

[Java] 文字列の分割(split)

こんにちは。 今回は、文字列の分割について解説します。 昔はStringTokenize

記事を読む

no image

[Java] クラスとインスタンス

こんにちは。 クラスとインスタンスについて解説します。 インスタンスは「オブジェクト」とも言

記事を読む

no image

[Java][Servlet] EclipseでのJavaServlet作成

こんにちは、今回はEclipseを使用してJavaServletを作成します。 Eclipse

記事を読む

no image

[Java] テキストファイルの読み込み方法

こんにちは、今回はテキストファイルをJavaで読む方法を紹介します。 標準で提供されているクラ

記事を読む

スポンサードリンク

Comment

  1. […] テスト投稿 テスト投稿2 […]

test2 | 読んだ本の感想 へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

スポンサードリンク

no image
CentOSにdockerをインストールしてみた

前置き dockerをcentos7にインストールしてみました

no image
awkでのgsubを使った文字列置換(正規表現)

まえおき bashなどのシェルスクリプトで、lsした結果とかを

no image
bashで並列処理する方法(xargs)

並列処理とは 通常、意識せずにプログラムを書くと、大体の場合は

no image
AWS Redshiftの使用ストレージ容量をクエリで調べる方法

用途 AWS Redshfitのコンソールを見れば、使用中のス

no image
pythonでstorage transfer serviceを使ってみた。

準備 pythonのインストールとかする。 このあたり。

→もっと見る

  • 2025年11月
     12
    3456789
    10111213141516
    17181920212223
    24252627282930
  • 2025年11月
     12
    3456789
    10111213141516
    17181920212223
    24252627282930
PAGE TOP ↑