👋

Java Silver 勉強②

2025/03/04に公開

【出題項目の例】
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 文字列の結合

複数の文字列を結合するためには、+演算子やStringBuilderStringBufferを使用できます。

  • + 演算子:

    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
    

キャスト

  • ビットサイズ小さいもの→大きいものは暗黙的に型変換される。
    byteshort charintlongfloatdouble

  • ビットサイズ大きいもの→小さいものはキャスト必要
    ⭐️サイズの小さい型でも扱える値であればキャストしても問題ない

キャスト注意

演算対象を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