[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] クラスとインスタンス

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

記事を読む

no image

[Java][基本] ループ処理(for文)

Javaのループ処理の基本である、for文を解説します。 ●文法 for( [①初期化];

記事を読む

no image

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

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

記事を読む

no image

[Java] Apache POIでExcel操作!

Apache POIをまずは使ってみようという方(自分も含め)のメモ 導入 Maven htt

記事を読む

no image

[Java][Servlet][JSP] ServletからJSPへの転送

こんにちは。 今回は、「Servletでリクエストを受けて、JSPで表示する。」方法を解説しま

記事を読む

no image

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

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

記事を読む

no image

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

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

記事を読む

no image

[Java][Eclipse] Mavenが利用可能な動的Webプロジェクトの作成

こんにちは、keiです。 今回は、Mavenが利用可能な動的Webプロジェクトの作成について解

記事を読む

no image

[Java][Spring] DIする方式を細かく見てみる① @ScopeでのSingletonとPrototypeの指定

今回は@Scopeアノテーションを用いて、オブジェクトをDIする方式を選択してみます。 ●解説

記事を読む

no image

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

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

記事を読む

スポンサードリンク

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年6月
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30  
  • 2025年6月
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30  
PAGE TOP ↑