〇〇に変換したい
// Date > String
String s = new SimpleDateFormat("yyyy-MM-dd").format(date); // dateがnullだとNullPointerException
// int > BigInteger
BigInteger b = BigInteger.valueOf(1)
// String > float変換
float f = Float.parseFloat("string");
// String > BigDecimal
BigDecimal bigDecimal = new BigDecimal(string)
// String > Double
try {
Double.parseDouble(s);
} catch (NumberFormatException e) {
// sが空文字・スペースの場合
} catch (NullPointerException e) {
// sがnullの場合
}
// String > int
int i = Integer.parseInt(s);
// int > String
String s = Integer.toString(i);
数値型 | 大きさ |
---|---|
byte | 8ビット整数-128~127
|
short | 16ビット整数-32,768~32,767
|
int | 32ビット整数-2,147,483,648~2,147,483,647
|
long | 64ビット整数-9,223,372,036,854,775,808~9,223,372,036,854,775,807
|
float | 32ビット単精度浮動小数点数 |
double | 64ビット倍精度浮動小数点数 |
- Double (Java Platform SE 6)
-
BigDecimal (Java Platform SE 7 )
- NumberFormatException : val が BigDecimal の有効な文字列表現でない場合
- intとStringの型変換|Javaキャスト入門
- Shortの比較でNullPointerExceptionになって知ったオートボクシング - Qiita
- LocalDateとTimestampを変換する方法 - Qiita
整形したい
// 0埋めしたい
String 整形した文字 = String.format("%03d", 数値);
Object
似ているけど違うObjectのプロパティをコピーしたい
// import org.apache.commons.beanutils.BeanUtils;
// コピー先, コピー元ともにList<>とかダメです。エラーにはならないけれどコピーしてもらえません。
try {
BeanUtils.copyProperties(コピー先, コピー元);
} catch (IllegalAccessException e) {
// コピー先かコピー元がnullの場合
} catch (InvocationTargetException e) {
// プロパティでなんかダメな場合(いつかどこかでちゃんと確認したい)
}
- Java BeanUtilsメモ(Hishidama's commons-BeanUtils Memo)
- BeanUtils で JavaBeans のプロパティを一気にコピーする | Javable.Jp
String
~で始まる(終わる)か確認したい。
// ~で終わる場合
if (StringUtils.endsWith({確認したい文字列}, "終わりにある文字")) {
// ~で終わる場合の処理
}
抜き出したい
抜き出したい
public String substring(int 開始インデックス (この値を含む), int 終了インデックス (この値を含まない))
- [String (Java Platform SE 7)](https://docs.oracle.com/javase/jp/7/api/java/lang/String.html#substring(int, int))
- Stringクラス(文字列を切り出しする) - Javaちょこっとリファレンス
- 1分でわかる文字列の一部を切り出しするsubstringの使い方【Java Stringクラス】
- 文字列の一部を取得(substring) - Stringクラス
パディングしたい
パディングしたい
// 半角スペース
String.format("%桁数s", パディングする文字);
置換したい
置換したい
stringBuilder.replace(開始インデックス(この値を含む), 終了インデックス(この値を含まない), 対象文字列)
- StringBuilderを使用した文字列操作 - Javaちょこっとリファレンス
- StringBuilder (Java Platform SE 8)
- 該当する全ての文字列を置換する(replaceAll) - Stringクラス
トリムしたい
全角スペースもトリムしたい
str.trim();
StringUtils.stripStart(str, " ");
StringUtils.stripEnd(str, " ");
比較したい
Stringを比較したい
// equals版
A.equals(B);
// compareTo版:辞書的な並び順で返却値が変わる
String str1 = "1";
String str2 = "2";
String str3 = "3";
str2.compareTo(str3); // -1
str2.compareTo(str2); // 0
str2.compareTo(str1); // 1
str2.compareTo(null); // java.lang.String.compareTo(String anotherString) > anotherString.value.length > NullPointerException
文字列を結合したい
文字列を速く結合したい
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(A);
stringBuilder.append(B);
String s = stringBuilder.toString();
- Java で 文字列を生成する場合にどう書くのが速い? - Qiita
- 「+=」と「StringBuilder」どっち使うか迷ったら
いろいろやりたい
特定文字の出現回数を知りたい
int shutsugenCount = (mojiretsu.length() - mojiretsu.replaceAll(tokuteiMoji, "").length()) / tokuteiMoji.length();
一時パスワードとか用にランダム文字列を生成したい
import org.apache.commons.lang3.RandomStringUtils;
String randamString = RandomStringUtils.random([文字数], [使いたい文字の文字列]);
- ランダム文字列生成 - 技術開発日記
- 文字列でswitchするときはif-else switchイデオムを使うほうが安全 - きしだのはてな
- Javaのswitch文でStringを判定する (おさらい) | プロプログラマ
- IsNullOrEmptyをJavaで使う - Challenge Java EE !
- isNullOrEmptyぽいもの - Qiita
- ログやら何やらに文字を出力したいです。
- ~ケースにしたいとか変換は大切です。
- 【Java】StringUtilsのisBlankとisEmptyの違い - Qiita
Date
比較したい
Dateを比較したい(時間も含めて)
A.compareTo(B);
Dateを比較したい(時間は含めない)
Date onlyDateA = clearTime(dateWithTimeA);
Date onlyDateB = clearTime(dateWithTimeB);
onlyDateA.compareTo(onlyDateB);
/**
* 引数の日時の時刻部分をリセットする.
* @param dateWinthTime 時間が設定されている日付.
* @return 時刻部分をリセットした日付.
*/
private Date clearTime(Date dateWinthTime) {
return new Date(DateUtils.truncate(dateWinthTime, java.util.Calendar.DAY_OF_MONTH).getTime());
}
double
- double型のアサーションにおける罠 | Developers.IO
- Java の double を素直な String にしたい、E 要らない - Qiita
- Javaでdoubleからintに型変換する際の注意点 | hacknote
- Doubleクラス - Javaちょこっとリファレンス
enum
enumのswichってdefaultは不要
結局いまいち理解できないのでenumの中身が増えた場合に備えてdefaultを入れました。
- 2009-04-20 - 地平線に行く
- テックノート – JavaのEnumの比較方法を紹介します
- Java の switch 構文落とし穴 - Status Code 303 - See Other
配列的なものの使い方を教えて欲しい
- Java を使うなら覚えておいて欲しい書き方 - 配列・リスト・マップ - ぐるぐる~
- List と 配列の相互変換 - Qiita
- Java:配列⇔Listの変換方法 | 覚え書き.com
- テックノート – 配列からListへ変換、Listから配列へ変換
普通の配列
初期化
String hairetsu[] = {"た","と","え", new String()};
// 何も入れられない配列.
String hairetsu[] = new String[0];
List
- JavaでListの要素を初期化・追加する方法 - Qiita
- Listの最後の要素を取得 - Qiita
- java.util.List#subListの誤った用法 - じゃばらの手記
- 「xs.size() == 0 と xs.isEmpty() の違い」のツイートより - 日々常々
- リストの内容を足し算するラムダを勉強した - Qiita