【Java】Stringクラス文字列を操作するメソッドの使い方まとめ!実例も紹介!
こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!そもそもStringとは何?『 String 』... Java言語において文字列のデータ型を指します。基本デ
Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!
フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。
こんにちは。エンジニアの新田です!
ここでは、システムエンジニアとして働いている私が、システム開発手法や開発言語について紹介していこうと思います。
今回は、JSPの標準タグライブラリ「JSTL」について紹介します。
Javaについて勉強している方、Webアプリケーションを構築したいと思っている方の参考になれば幸いです!
関連記事リンク: 【Java】JSPの基本的な構文/【Java】JSPのアクションタグ/【Java】JSPのディレクティブ/【Java】JSPのEL式
JSTLは「JSP Standard Tag Library」の略で、JSP内でよく使われる機能をタグライブラリとしてまとめたものです。
JSTLとEL式を組み合わせることで、スクリプトレットレスなJSPを記述することが可能となり、可読性・保守性が向上します。
また、実装が既に提供されており、開発者がタグの実装をしなくて済むため、開発時間の短縮につながる事や、ノウハウが蓄積され標準化された仕様であるため、高い安定性がある事がメリットといえます。
JSPのアクションタグを独自に作成して利用できるようにしたものをカスタムタグと呼び、このカスタムタグをまとめてライブラリ化したものをタグライブラリと呼びます。
JSTLは提供される機能により、5つのタグライブラリ(Core, i18n, Database, XML, Functions)に分類されています。
※この記事ではよく使われるものとして、Core, i18nの一部のタグについて紹介します。
JSTLのタグライブラリは、JARファイル形式で提供されており、JSPの動作環境にそのまま追加して使用することが可能です。
※Eclipseの動的Webプロジェクトでの構成を前提に説明します。
以下のサイトからJSTLのjarファイルをダウンロードします。
Apache Tomcatのサイト
https://tomcat.apache.org/download-taglibs.cgi
ダウンロードするファイル
・taglibs-standard-impl-1.2.5.jar
・taglibs-standard-jstlel-1.2.5.jar
・taglibs-standard-spec-1.2.5.jar
ダウンロードしたjarファイルを対象プロジェクトの「WEB-INF\lib」配下に配置します。
eclipseのプロジェクトエクスプローラーで見たときに以下のような構成になります。
JSPでタグライブラリを使用する場合は、「taglib」ディレクティブを使用して、利用したいタグライブラリを宣言します。
<%@ taglib prefix="prefix名" uri="TLDファイルのURI" %>
prefix名、TLDファイルのURIには以下の値を使用します。
(prefix(接頭辞)には任意の文字列を指定可能ですが、可読性の観点から規定されている接頭辞を用いるのが望ましい。)
Core
prefix="c" uri="http://java.sun.com/jsp/jstl/core"
i18n
prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"
Function
prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"
XML
prefix="x" uri="http://java.sun.com/jsp/jstl/xml"
Database
prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"
Coreタグライブラリの主なタグ一覧です。
この記事では、よく使われる一部のタグについて、使用方法を紹介します。
<c:set var="変数名" value="初期値" [scope="スコープ"] />
<c:remove var="変数名" [scope="スコープ"] />
<c:out value="出力値" [default="デフォルト値"] [escapeXml="ブール値"]/>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
</head>
<body>
「c:set」で変数messageに値を設定、「c:out」で出力<br/>
<c:set var="message" value="こんにちは!" />
⇒ message= <c:out value="${message}" />
<br/><br/>
「c:remove」で変数messageを削除、「c:out」で出力<br/>
<c:remove var="message" />
⇒ message= <c:out value="${message}" />
</body>
</html>
実行結果
<c:if test="条件式" [var="条件式の結果を格納する変数"] [scope="変数を格納するスコープ"]>
条件式がtrueの場合の処理
</c:if>
<c:choose>
<c:when test="条件式">条件に一致した場合の処理</c:when>
<c:when test="条件式">条件に一致した場合の処理</c:when>
<c:otherwise>全ての条件に一致しなかった場合の処理</c:otherwise>
</c:choose>
※c:chooseタグは、c:whenタグ、c:otherwiseタグを入れ子にして使用します。
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
</head>
<body>
「c:set」で変数numに値「9」を設定<br/>
「c:if」で10以下の値か判定<br/>
<br/>
<c:set var="num" value="9"/>
<c:if test="${num <= 10 }">
⇒変数numは、10以下です
</c:if>
<br/>
<br/>
<hr/>
「c:set」で変数num2に値「4」を設定<br/>
「c:choose」で10以上または5~9の値か判定、条件に当てはまらない場合は4以下と判定<br/>
<br/>
<c:set var="num2" value="4"/>
<c:choose>
<c:when test="${num2 >= 10}">
⇒変数numは、10以上です
</c:when>
<c:when test="${num2 >= 5}">
⇒変数numは、5~9です
</c:when>
<c:otherwise>
⇒変数numは、4以下です
</c:otherwise>
</c:choose>
</body>
</html>
実行結果
回数指定による繰り返し
<c:forEach begin="開始値" end="終了値" [var="カウンタ変数名" ] [step="増分値"]>
コレクション・配列の要素を参照しながら繰り返し
<c:forEach var="コレクション・配列の各要素を表す変数名" items="コレクション・配列を参照する変数名" >
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
</head>
<body>
「c:forEach」1~5まで増分2で繰り返し<br/>
「c:out」で現在のindex値を出力<br/>
<br/>
<c:forEach begin="1" end="5" step="2" var="index">
index:<c:out value="${index}"/><br>
</c:forEach>
<br/>
<br/>
<hr/>
「c:set」で変数strにカンマ区切りの文字列を設定<br/>
「c:forEach」でカンマで区切られた文字列を1つずつ取得してループ<br/>
「c:out」で現在のindexと取得した文字列を出力<br/>
<br/>
<c:set var="str" value="A,B,C,D,E" />
<c:forEach var="item" items="${str}" varStatus="status">
<c:out value="${status.index}" />:<c:out value="${item}" /><br>
</c:forEach>
</body>
</html>
※「c:forEach」の「items」にカンマ区切りの文字列を指定する事で、カンマ部分で区切られた文字列の配列として処理されます
実行結果
I18Nタグライブラリの主なタグ一覧です。
この記事では、よく使われる一部のタグについて、使用方法を紹介します。
<fmt:formatNumber value="数値データ" [pattern="書式パターン"] [type="数値データの種別"] [・・・] />
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
</head>
<body>
フォーマット未指定(デフォルト)<br/>
<fmt:formatNumber value="1234" /><br>
カンマ区切り(0埋めしない)<br>
<fmt:formatNumber value="1234" pattern="###,###" /><br>
桁数指定(patternで指定、ゼロ埋めする)<br>
<fmt:formatNumber value="12.34" pattern="000.000" /><br>
パーセント表示<br>
<fmt:formatNumber value="0.1234" pattern="##.#%" /><br>
カンマ区切りで表示させない<br>
<fmt:formatNumber value="1234" groupingUsed="false" /><br>
桁数指定(属性値で指定)<br>
<fmt:formatNumber value="1234.5678"
maxIntegerDigits="5" minIntegerDigits="5"
maxFractionDigits="5" minFractionDigits="0" /><br>
通貨記号を付与<br>
<fmt:formatNumber value="123456"
type="CURRENCY" currencySymbol="$" /><br>
</body>
</html>
実行結果
<fmt:formatDate value="日付データ" [pattern="書式パターン"] [type="日付データの種別"] [・・・] />
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
</head>
<body>
<jsp:useBean id="date" class="java.util.Date" />
フォーマット未指定(デフォルト)<br/>
<fmt:formatDate value="${date}" /><br>
<hr/>
表示タイプの指定<br/>
[type="DATE"]
<fmt:formatDate value="${date}" type="DATE"/><br>
[type="TIME"]
<fmt:formatDate value="${date}" type="TIME"/><br>
[type="BOTH"]
<fmt:formatDate value="${date}" type="BOTH"/><br>
<hr/>
日付表示のスタイル指定<br/>
[dateStyle="FULL"]
<fmt:formatDate value="${date}" type="DATE" dateStyle="FULL" /><br>
[dateStyle="LONG"]
<fmt:formatDate value="${date}" type="DATE" dateStyle="LONG" /><br>
[dateStyle="MEDIUM"]
<fmt:formatDate value="${date}" type="DATE" dateStyle="MEDIUM" /><br>
[dateStyle="SHORT"]
<fmt:formatDate value="${date}" type="DATE" dateStyle="SHORT" /><br>
<hr/>
時刻表示のスタイル指定<br/>
[timeStyle="FULL"]
<fmt:formatDate value="${date}" type="TIME" timeStyle="FULL" /><br>
[timeStyle="LONG"]
<fmt:formatDate value="${date}" type="TIME" timeStyle="LONG" /><br>
[timeStyle="MEDIUM"]
<fmt:formatDate value="${date}" type="TIME" timeStyle="MEDIUM" /><br>
[timeStyle="SHORT"]
<fmt:formatDate value="${date}" type="TIME" timeStyle="SHORT" /><br>
<hr/>
パターン指定<br/>
[pattern="yyyy/MM/dd HH:mm:ss"]
<fmt:formatDate value="${date}" pattern="yyyy/MM/dd HH:mm:ss" /><br>
[pattern="yyyy年MM月dd日(E) a KK時mm分ss秒"]
<fmt:formatDate value="${date}" pattern="yyyy年MM月dd日(E) a KK時mm分ss秒" /><br>
[pattern="y年M月d日 H時m分s秒"]
<fmt:formatDate value="${date}" pattern="y年M月d日 H時m分s秒" /><br>
</body>
</html>
実行結果
関連記事リンク: 【Java】JSPの基本的な構文/【Java】JSPのアクションタグ/【Java】JSPのディレクティブ/【Java】JSPのEL式
【著者】
JavaメインのWebアプリケーション開発に多く携わっています。
Javaの基本的な部分の紹介や、これまで経験したシステム開発手法、新しい技術についても紹介していこうと思います。
そのような方はぜひ、Workteriaサイトをご利用ください!
定期的にご本人に合う高額案件を紹介
リモートワークなど自由な働き方ができる案件多数
専属エージェントが契約や請求をトータルサポート
こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!そもそもStringとは何?『 String 』... Java言語において文字列のデータ型を指します。基本デ
こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!Stringクラスformatメソッドの文字列整形【java.utilパッケージ】Formatterクラスfo
こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者にも✅、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!文字列を扱う3つのクラス【java.langパッケージ】java.langパッケージの文字列を扱うクラスにはS
こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!プリミティブ型と参照型プログラム開発では型を持った変数を使ってデータのやり取りをしますが、データ型によって仕様
こんにちは、駆け出しエンジニアの伊藤です。東京ITカレッジのJava研修で学んだ内容を復習も兼ねて記事にしたいと思います。今回は、日付時刻のまとめとして、日付時刻に関する基本的なクラスやメソッド等の概要を紹介していきます。より詳しく知りたい!という方は、リンク先の関連記事をご参考にしてください。Javaやプログラムについて勉強し始めた方の参考になれば幸いです!(eclipseを使用して計算を行って