プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

JSPで入力文字列に指定した部分文字列が含まれているか確認する方法(fn:contains関数)

JSPのJSTL関数ライブラリには、文字列操作に便利な関数が多数用意されています。その中でもfn:contains()関数は、入力文字列の中に特定の部分文字列が含まれているかどうかを判定するために使用されます。判定結果はboolean型(true / false)で返されます。

fn:contains()関数の構文

fn:contains()関数は、以下のような構文で定義されています。

boolean contains(java.lang.String, java.lang.String)

第一引数に検索対象となる元の文字列を、第二引数に探したい部分文字列を指定します。

fn:contains()関数の使用例

次のサンプルコードは、fn:contains()関数の実際の動作を示したものです。

<%@ taglib uri = "https://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@ taglib uri = "https://java.sun.com/jsp/jstl/functions" prefix = "fn" %>
<html>
    <head>
        <title>JSTL関数の使用例</title>
    </head>
    <body>
        <c:set var = "theString" value = "I am a test String"/>
        <c:if test = "${fn:contains(theString, 'test')}">
            <p>testという文字列が見つかりました<p>
        </c:if>
        <c:if test = "${fn:contains(theString, 'TEST')}">
            <p>TESTという文字列が見つかりました<p>
        </c:if>
    </body>
</html>

実行結果

上記のコードを実行すると、以下の出力が得られます。

testという文字列が見つかりました

解説

この例では、変数theStringに「I am a test String」という文字列を設定しています。

  • 1つ目の条件では小文字の「test」を検索しているため、該当する部分文字列が存在し、メッセージが表示されます。
  • 2つ目の条件では大文字の「TEST」を検索していますが、fn:contains()関数は大文字と小文字を区別するため、一致せずメッセージは表示されません。

大文字・小文字を区別せずに判定したい場合は、fn:toLowerCase()やfn:toUpperCase()関数と組み合わせて、両方の文字列を同じケースに揃えてから比較するとよいでしょう。

  1. Pythonで文字列が数字のみで構成されているかどうかを判定する方法

    Pythonの文字列(String)クラスには isdigit() というメソッドが用意されています。このメソッドは、文字列に少なくとも1文字以上が含まれ、そのすべてが数字である場合に True を返し、そうでない場合には False を返します。 isdigit() メソッドの使用例 print(12345.isdigit()) print(12345a.isdigit()) 実行結果 True False 上記の例では、純粋な数字のみの文字列「12345」は True、アルファベットが混ざった「12345a」は False と判定されています。 なお、isdigit() はマイナス記号や小

  2. Pythonで部分文字列が文字列に含まれているか確認する方法(in演算子とfindメソッド)

    Pythonでは、ある文字列が別の文字列の部分文字列(サブストリング)として含まれているかどうかを簡単に確認できます。最も基本的な方法は、in 演算子を使うことです。in 演算子を使った判定方法in 演算子は、左辺の文字列が右辺の文字列に含まれている場合に True を、含まれていない場合に False を返します。以下はその使用例です。print(ello in hello world)実行結果:Trueこのように、ello は hello world の中に含まれているため、True が出力されます。find() メソッドで位置(インデックス)を取得する部分文字列が含まれているかどうかに加