Java Silver 勉強②
【出題項目の例】
Javaの基本データ型と文字列の操作
演算子と制御構造
配列の操作
クラスの宣言とインスタンスの使用
メソッドの作成と使用
カプセル化の適用
継承による実装の再利用
インタフェースによる抽象化
例外処理
モジュール・システム
Javaの基本データ型と文字列の操作
Javaの基本データ型と文字列の操作について、以下のポイントに分けて説明します。
1. 基本データ型 (Primitive Data Types)
Javaには8つの基本データ型があります。それぞれの型には固有のサイズ、範囲、およびデフォルト値があります。
1.1 整数型
- byte: 8ビット、-128 ~ 127
- short: 16ビット、-32,768 ~ 32,767
- int: 32ビット、-2^31 ~ 2^31 - 1
- long: 64ビット、-2^63 ~ 2^63 - 1
10進数・・・305
2進数・・・0b101(先頭に0bをつける)
8進数・・・0566(先頭に0をつける)
16進数・・・0x9f(先頭に0x、0〜fまでの文字で表現)
1.2 浮動小数点型
- float: 32ビット、単精度浮動小数点数
- double: 64ビット、倍精度浮動小数点数
10進数・・・3.14
指数・・・5e2(5.0×10の2乗=_500.0)
1.3 文字型
-
char: 16ビット、単一の文字(Unicode文字)
- 例:
'A'
,'1'
,'%'
- 例:
1.4 論理型
-
boolean:
true
またはfalse
- 例:
true
,false
- 例:
1.5 null
- 参照型に対して何も参照しないを意味
参考)デフォルト値
- byte,short,int,long →「0」
- float,double →「0.0」
- char →「¥u0000l」
- boolean →「false」
- 参照型 →「null」
2. 基本データ型とラッパークラス
Javaでは、基本データ型の他に、それぞれに対応するラッパークラス(Wrapper Classes)があります。ラッパークラスは基本データ型をオブジェクトとして扱うためのクラスです。
- Integer(intのラッパークラス)
- Double(doubleのラッパークラス)
- Character(charのラッパークラス)
- Boolean(booleanのラッパークラス)
- その他、Byte, Short, Long, Float など
3. 文字列の操作 (String)
文字列はJavaで重要な役割を果たす型で、String
クラスは非常に多くのメソッドを提供しています。
3.1 Stringの作成
文字列はString
クラスを使って作成します。文字列リテラルはシングルクォートではなくダブルクォートで囲みます。
String str = "Hello, World!";
3.2 Stringメソッド
String
クラスには文字列を操作するための多くのメソッドがあります。
-
文字列の長さ:
length()
メソッドを使って文字列の長さを取得します。int len = str.length(); // strの長さを取得
-
文字の取得:
charAt()
メソッドを使って文字列の特定の位置の文字を取得します。char c = str.charAt(0); // 最初の文字('H')を取得
-
部分文字列:
substring()
メソッドを使って部分文字列を取得します。String subStr = str.substring(0, 5); // "Hello"
-
文字列の検索:
indexOf()
やlastIndexOf()
で文字列の中で特定の文字列を検索します。int index = str.indexOf("World"); // 7が返る
-
文字列の置換:
replace()
メソッドで文字列を置き換えます。String newStr = str.replace("World", "Java"); // "Hello, Java!"
-
文字列のトリム:
trim()
メソッドで文字列の前後の空白を削除します。String trimmed = str.trim(); // 前後の空白を削除
-
文字列の分割:
split()
メソッドで文字列を区切り文字で分割します。String[] words = str.split(","); // ["Hello", " World!"]
3.3 文字列の結合
複数の文字列を結合するためには、+
演算子やStringBuilder
、StringBuffer
を使用できます。
-
+
演算子:String str1 = "Hello"; String str2 = " World!"; String result = str1 + str2; // "Hello World!"
-
StringBuilder
(効率的な文字列結合):StringBuilder sb = new StringBuilder(); sb.append("Hello"); sb.append(" World!"); String result = sb.toString(); // "Hello World!"
3.4 文字列の比較
文字列を比較するためには、equals()
やequalsIgnoreCase()
メソッドを使用します。
-
equals()
: 大文字と小文字を区別して比較します。String str1 = "Hello"; String str2 = "Hello"; boolean isEqual = str1.equals(str2); // true
-
equalsIgnoreCase()
: 大文字と小文字を区別せずに比較します。String str1 = "hello"; String str2 = "HELLO"; boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2); // true
3.5 文字列の変換
文字列の型変換は、String
クラスのメソッドを使用して行います。
-
整数型への変換:
parseInt()
を使って文字列を整数に変換できます。String numStr = "123"; int num = Integer.parseInt(numStr); // 123
-
文字列から他の型への変換:
String floatStr = "3.14"; float f = Float.parseFloat(floatStr); // 3.14
キャスト
-
ビットサイズ小さいもの→大きいものは暗黙的に型変換される。
byte
→short
char
→int
→long
→float
→double
-
ビットサイズ大きいもの→小さいものはキャスト必要
⭐️サイズの小さい型でも扱える値であればキャストしても問題ない
キャスト注意
演算対象を2つ必要とする場合、型変換はビットサイズが大きい型に変換される。
//doubleがある場合
double d = 10.5;
int i = 5;
System.out.println(d + i); //15.5 (double)
//doubleなし、floatがある場合
float f = 5.5f;
long l = 10L;
System.out.println(f + l); // 15.5 (float)
//double,floatなし、longがある場合
long l = 100L;
int i = 20;
System.out.println(l + i); // 결과: 120 (long)
//double, float,longがなし、intへ変換
short s1 = 10;
short s2 = 20;
System.out.println(s1 + s2); // 결과: 30 (int) ❗️
//short + sortはintへ変換されるので、shortキャスト必要
short s3 = (short)(s1 + s2); // (short) キャスト
Discussion