-
JavaでArrayListから部分リスト(SubList)を削除する方法を解説
subList()メソッドとclear()メソッドを組み合わせる方法 ListインターフェースのsubList()メソッドは、要素のインデックスを表す2つの整数値を引数に受け取り、現在のListオブジェクトのうち、指定されたインデックス範囲に該当する部分リスト(ビュー)を返します。 また、clear()メソッドは、現在のListオブジェクトからすべての要素を削除するメソッドです。 この2つのメソッドを組み合わせれば、ArrayListから任意の範囲の要素をまとめて削除できます。手順はとてもシンプルで、削除したい部分リストの境界となるインデックスを指定して、次のように呼び出すだけです。 obj.
-
JavaでArrayListの最初と最後の要素を取得する方法をわかりやすく解説
JavaのArrayListクラスが提供するget()メソッドは、インデックス値(整数)を引数として受け取り、その位置に格納されている要素を返します。 つまり、このメソッドに0を渡せばリストの先頭(最初)の要素を取得でき、list.size()-1を渡せば末尾(最後)の要素を取得できるという仕組みです。 なお、空のリストに対してget()を呼び出すとIndexOutOfBoundsExceptionが発生するため、実際のコードではリストが空でないかを事前に確認しておくと安全です。 サンプルコード:最初と最後の要素を取得する import java.util.ArrayList; public
-
【Java】大文字・小文字を区別せずに部分文字列が含まれるか判定する方法
Javaで文字列の中に特定の部分文字列が含まれているかどうかを、大文字・小文字を区別せずに確認したい場面はよくあります。この記事では、toLowerCase()メソッドとcontains()メソッドを組み合わせた基本的な実装方法を、実際のコード例とともに解説します。使用するメソッドの概要contains() メソッドString クラスの contains() メソッドは、引数として文字列を受け取り、現在の文字列オブジェクトの中に指定した文字列が含まれているかどうかを検証します。含まれていれば true を、含まれていなければ false を返します。toLowerCase() メソッドStr
-
Javaのfinal変数はオブジェクト生成時に初期化できる?4つの初期化方法を解説
final変数の初期化は必須Javaで変数をfinalとして宣言すると、一度値を初期化した後は、その値を変更することができません。また、通常のインスタンス変数と異なり、final変数にはデフォルト値(0 や null など)が自動的に代入されない点にも注意が必要です。そのため、final変数は宣言した時点で必ず初期化しなければなりません。初期化せずに使用すると、コンパイルエラーが発生します。初期化忘れによるコンパイルエラーの例public class FinalExample { final int j; public static void main(String args[
-
Javaでfinalキーワードを使わずに一度だけ値を設定できる変数を作成する方法
Javaでは、finalキーワードを付けた変数は一度初期化すると二度と値を変更できません。つまり、final変数に値を代入できるのは1回だけです。final変数に対して再度値を代入しようとすると、コンパイル時エラーが発生します。 final変数の基本的な挙動 まず、通常のfinal変数がどのように動作するのか、次のサンプルコードで確認してみましょう。 サンプルコード public class FinalExample { final int j = 100; public static void m
-
【Java】StringUtils.containsIgnoreCase()で大文字小文字を無視して部分文字列の有無を判定する方法
Apache Commonsライブラリ(org.apache.commons.lang3パッケージ)のStringUtilsクラスには、containsIgnoreCase()という便利なメソッドが用意されています。 このメソッドは「元の文字列」と「検索文字列」の2つのString値を引数として受け取り、大文字と小文字の違いを無視したうえで、元の文字列の中に検索文字列が含まれているかどうかを判定します。戻り値はboolean型で、以下のようになります。 元の文字列に検索文字列が含まれている場合は true を返す 含まれていない場合は false を返す また、StringUtilsクラ
-
【Java】文字列から特定の単語を検索する3つの方法|contains()・indexOf()・StringTokenizerの使い方
Javaには、文字列の中から特定の単語を検索・解析するためのさまざまな手法が用意されています。この記事では、特によく使われる以下の3つの方法を、サンプルコードと実行結果とあわせてわかりやすく解説します。 contains()メソッド … 単語が含まれているかどうかを判定 indexOf()メソッド … 単語が出現する位置(インデックス)を取得 StringTokenizerクラス … 文字列を単語に分割し、完全一致で比較 1. contains()メソッド Stringクラスのcontains()メソッドは、引数として渡した文字シーケンス(CharSequence)が現在の文字列内に含まれ
-
【Java】大文字と小文字を区別せずに文字列を比較する方法を解説
Javaでは、いくつかの異なる方法で文字列を比較することができます。それぞれ特徴が異なるため、用途に応じて適切な方法を選ぶことが重要です。 compareTo()メソッドを使う方法:2つの文字列を辞書順(Unicode値ベース)に比較し、大小関係まで判定できます。 == 演算子を使う方法:変数の参照(オブジェクトの同一性)を比較するため、値の比較には不向きです。 equals()メソッドを使う方法:大文字・小文字を含めた文字列の内容そのものを比較できます。 以下、それぞれの方法を詳しく見ていきましょう。 1. compareTo()メソッドで比較する compareTo()メソッドは、2
-
JavaでJacksonのTree Modelを使用してJSONを作成する方法
Jacksonライブラリでは、Tree Model(ツリーモデル)を使ってJSON構造を表現し、JsonNodeを通じてCRUD操作(作成・読み取り・更新・削除)を行うことができます。このJackson Tree Modelは、JSONの構造がJavaクラスにマッピングできない場合に特に便利です。JSON構造が事前に分からない場合や、動的にJSONを組み立てたい場合にも柔軟に対応できます。JacksonライブラリでJSONを作成するには、JsonNodeFactoryを使用します。JsonNodeFactoryは、ノードインスタンスへのアクセス手段と各メソッドの基本的な実装を提供するクラスです
-
JavaのJsonGeneratorを使ってJSONを生成する方法【コード例付きで解説】
はじめにJavaでJSONデータをプログラム的に作成したい場合、Jacksonライブラリが提供するJsonGeneratorクラスが非常に便利です。本記事では、JsonGeneratorの基本的な役割と、実際のコード例を使ったJSON生成の手順をわかりやすく解説します。JsonGeneratorとはJsonGeneratorは、JSONコンテンツを書き出すための公開APIを定義した基底クラスです。このクラスのインスタンスは、JsonFactoryオブジェクトのファクトリメソッドを通じて生成されます。JsonFactoryからJsonGeneratorを取得できたら、以下のようなメソッドを組み合
-
JavaでFlexjsonを使ってオブジェクトのリストをJSONにシリアライズする方法
Flexjsonは、JavaオブジェクトをJSON形式にシリアライズ(直列化)・デシリアライズ(復元)するための軽量なライブラリです。この記事では、オブジェクトのリストをJSONに変換する方法を解説します。serialize()メソッドによるリストのシリアライズJSONSerializerクラスが提供するserialize()メソッドを使うと、対象インスタンスのシャロー(浅い)シリアライズを実行できます。オブジェクトのリストを変換するには、List型のリストを引数としてserialize()メソッドに渡すだけです。構文public String serialize(Object target)
-
JavaでJacksonを使ってJSON配列をリスト(List)に変換する方法
JacksonライブラリとはJacksonはJavaベースのライブラリで、JavaオブジェクトをJSONに変換したり、その逆にJSONをJavaオブジェクトに変換したりする際に非常に便利です。Jackson APIは他のAPIと比べて処理速度が速く、必要なメモリ領域も少ないため、大規模なオブジェクトの処理にも適しています。ObjectMapperクラスでJSON配列をリストに変換するJSON配列をリストに変換するには、ObjectMapperクラスを使用します。このクラスにはreadValue()という便利なメソッドが用意されており、第1引数にJSON文字列を渡し、第2引数に変換先のクラスを指
-
JavaでArrayList<String>とArrayList<Object>を相互に変換する方法
Javaのジェネリクスでは、ArrayList<String>とArrayList<Object>は互換性がないため、直接代入やキャストを行うとコンパイルエラーになります。しかし、ワイルドカード(?)やコンストラクタを活用することで、両者を相互に変換できます。この記事では、2つの変換方法をサンプルコード付きで解説します。 ワイルドカードとは ジェネリクスの型パラメータ(T)の代わりに「?」を使用すると、「不明な型」を表すことができます。これをワイルドカードと呼びます。ワイルドカードは、以下の場所で使用できます。 メソッドのパラメータの型 フィールドの型 ローカル変数の
-
Javaでオブジェクトのパラメータとして配列を初期化する方法を解説
Javaでは、クラス内で宣言された配列型のフィールド(インスタンス変数)も、他の通常の変数と同じように初期化できます。主な方法は次の2つです。 コンストラクタを使って初期化する セッター(setter)メソッドを使って初期化する 以下に、それぞれの方法を具体的なサンプルコードとともに紹介します。 例1:コンストラクタで配列を初期化する 次のJavaプログラムでは、配列型のインスタンス変数を宣言し、コンストラクタ経由で値を受け取って初期化しています。 public class Student { String name; int age; String subs[]
-
Javaで文字列がASCII文字のみかどうかを判定する方法
Javaでは、入力値のバリデーションや外部システムとのデータ連携の際に、「文字列がASCII文字のみで構成されているか」を確認したいケースがあります。本記事では、正規表現を使う方法と各文字のコード値を1つずつ検証する方法という2つのアプローチを、サンプルコードと実行結果付きでわかりやすく解説します。 方法1:正規表現を使って判定する ASCII文字のみで構成される文字列は、次の正規表現で表現できます。 \A\p{ASCII}*\z Stringクラスのmatches()メソッドは、引数に渡した正規表現と現在の文字列が一致すればtrue、一致しなければfalseを返します。判定したい文字列に対し
-
Javaの文字列置換メソッド徹底解説:replace()・replaceAll()・replaceFirst()の使い方
Javaで文字列を扱う際、「特定の単語を別の単語に置き換えたい」「正規表現に一致する部分だけを変換したい」といったニーズはよく発生します。Stringクラスには、こうした用途に応えるためにreplace()、replaceAll()、replaceFirst()という3つの置換メソッドが用意されています。この記事では、それぞれのメソッドの特徴と違いを、実際のコード例と実行結果をもとにわかりやすく解説します。 replace()メソッドとはreplace()メソッドは、Stringクラスの基本的な置換メソッドで、2つの引数を受け取ります。1つ目:置き換えの対象となる部分文字列2つ目:置き換え後の
-
Javaで文字列から日付を解析する方法:SimpleDateFormatを使った日付フォーマットの変換
Javaでは、java.textパッケージに含まれるSimpleDateFormatクラスを使用することで、日付を任意の形式(ロケール対応)でフォーマットしたり、文字列から解析(パース)したりすることができます。このクラスのコンストラクタの一つは、希望する日付フォーマットを表すString型の値を受け取り、SimpleDateFormatオブジェクトを生成します。また、このクラスが提供するformat()メソッドは、java.util.Dateオブジェクトを引数として受け取り、現在のオブジェクトが表すフォーマットに従った日付・時刻の文字列を返します。日付文字列を別のフォーマットに変換する手順入
-
Javaで特定の単語を除いてファイル内のすべての文字を「#」に置き換えるプログラム
Javaでファイルの内容を処理し、特定の単語だけを残して他のすべての文字を「#」に置き換えたい場面は少なくありません。本記事では、split()メソッドとreplaceAll()メソッドを組み合わせて、この処理を実現する方法を解説します。 使用する主なメソッド split()メソッドは、Stringクラスに用意されたメソッドで、指定した正規表現に一致する部分を区切りとして現在の文字列を分割します。戻り値の配列には、正規表現に一致する部分文字列で区切られた各部分文字列、あるいは文字列の末尾までの部分文字列が格納されます。 replaceAll()メソッドは、正規表現と置換後の文字列の2つの引数を
-
Javaで.txtファイルの特定の行を上書き・置換する方法【サンプルコード付き】
Javaプログラムからテキストファイル(.txt)の特定の行だけを書き換えたい場面は多くあります。この記事では、Scanner、StringBuffer、replaceAll()、FileWriter を組み合わせて、ファイル内の1行を読み込み、別の文字列に差し替えて上書き保存する方法を、実際のコード例とともにわかりやすく解説します。 使用するAPI String.replaceAll()メソッド StringクラスのreplaceAll()メソッドは、正規表現と置換後の文字列の2つの引数を受け取り、パターンに一致したすべての箇所を指定した文字列に置き換えます。「ある行を別の行に差し替える
-
Javaで「Could not find or load main class(メインクラスが見つからない、またはロードできませんでした)」エラーを解決する方法
Javaプログラムを作成したら、まず javac コマンドを使ってコンパイルします。この段階でコンパイルエラーが発生していれば、その内容が表示されます。コンパイルエラーをすべて解消して正常にコンパイルが完了すると、現在のフォルダにクラス名と同じ名前で拡張子 .class の実行可能ファイルが生成されます。次に、java コマンドを使ってプログラムを実行します。java クラス名しかし実行時に、JVM(Java仮想マシン)が指定された名前の .class ファイルを見つけられない場合、次のようなランタイムエラーが発生します。D:\sample>java Example Error: Cou