イントロダクション
データ型とは、数値、文字、クラスなどの変数の型を意味しています。このデータ型について、1番使うであろう文字(Char)と文字列(String)について記載します
Stringとchar
Javaで文字を扱うときに使用するデータ型として「char」「String」があります。
- Stringは文字列のことで、「"(ダブルクォーテーション)」で囲うことで文字列を表します。
- charは文字を表し、「'(シングルクォーテーション)」で囲うことで文字を表します。
String str = "文字列";
char ch = 'a';
ちなみに、「=」の右側、値の部分のことを「リテラル」と呼びます。別な言い方をすると「"XXX"」は文字列のリテラル「'X'」は文字のリテラルという言い方ができます。
リテラルの解説
While文でint型の配列をループする処理の説明をしていますが、リテラルの説明もしています。
下のコードは、各データ型の定義サンプルです。
データ型(変数の型)は大きく分けてプリミティブ型と参照型があります。
/**
* プリミティブ型データ一覧クラス(説明用)
* @author takunoji
*/
public class PrimitiveSample {
/** INTは整数で ±2147483647まで使用可能 */
private int population;
/** Doubleは小数点を使用する */
private double footSize;
/** Shortの年齢は ±32767まで使用可能 */
private short age;
/** BooleanはTRUEかFALSE */
private boolean flg;
/** Charは一文字 */
private char ch;
/** 1Byteは8Bit(2進数8桁)-> 01010101 = 85 */
private byte byt = 0x7F; // 16進表現:10進数の127
/** LongはINTよりも大きい整数 */
private long lng;
/** FloatはDoubleよりも大きい小数点 */
private float flt;
/**
* コンストラクタ:この処理を通るとインスタンスができる
*/
public PrimitiveSample() {
population = 100;
footSize = 24.6;
age = 100; // intはより大きな数値を使える
flg = false;
ch= 'A';
byt = 0x7F;
lng = 123456;
flt = 12345.6;
}
}
プリミティブ型
charはプリミティブ型と言うカテゴリに入ります。intと同じく「==」で比較できます。
参照型(クラス型)
Stringは参照型(これもカテゴリ)で比較メソッドを使用します。参照型の場合はクラスなのでメソッドが使用できます。プリミティブ型の場合はメソッドが使用できません。そして、参照型は「==」での比較は想定通りに動きません。細かい理由は後々に… ※最近は「==」でもある程度ちゃんと比較できるようです
使い方
初期化するときは下のようにやります。
char a = 'a'; // シングルクォーテーション
String a = "a"; // ダブルクォーテーション
比較するときは、charは「==」を使用します。
Stringはメソッドを使用します。
String a = "a";
a.equals("a"); // trueが出力されます。
兎にも角にも、コードをみてみいないと
なんとも言えないのでこちらから
ダウンロードしてください。
サンプルコード
public static void main(String[] rags) {
int i = 1;
char c = ‘a’; // 一文字のみ
String str = “文字列”;
System.out.println(i == 1); // true
System.out.println(c == ‘b’); // false
System.out.println(“abc”.equals(str)); // true
// 文字列操作
// 「abc」の「b」のみ表示
System.out.println(str.charAt(2));
// 文字列の置換(123をZZZに置換)
System.out.println("test123bbb".replace("123", "ZZZ"));
}
<問題>
プログラム引数に「abc」「def」を渡してその引数を以下のようにコンソールに出力してください
①引数1: abc
②引数2: def
・上記の表示を行なった後にchar型の値「G」と「E」を
①と②の最後の部分に追加して表示してください。
※String型の変数の後にchar型を連結できればOKです。
Eclipseの画面では下のような画面でプログラム引数を追加します。
StringBuilderを使う
StringBuilderクラスを使用すると、文字列の操作が簡単にできます。
例えば、文字列の変数「str」が下のようにあったとします。
String str = "1234567";
個の文字列の「4」以降を取得したい時は「StringBuilder#subString(3)」とコードを書けば取得できます。
String str = "1234567";
StrinbBuilder build = new StringBuilder(str);
String result = build.substring(3);
System.out.println(result); // 「4567」が表示される
関連ページ
- Java はじめて 1 〜メインメソッド〜
- Java はじめて2 〜メソッドを呼び出す〜
- Java はじめて3 〜コメントの書き方〜
- Java はじめて4〜練習問題をやってみる〜
- Java はじめて5 〜変数について〜
- Java はじめて6 〜変数について2、byte, char, boolean型〜
- Java はじめて7 〜配列とは、配列の使い方〜
- Java はじめて8 〜booleanとif~
- Java はじめて 9 〜switch文〜
- Java はじめて 10 〜ループ処理A: for文1〜
- Java はじめて 11 〜ループ処理A: for文2 拡張for文〜
- Java はじめて12 〜ループ処理B: while文〜
- Java はじめて13 〜ループ処理C: do-while文〜
- Java はじめて14 〜クラスの作り方〜
- Java はじめて15 〜クラス型変数の使い方〜
- Java はじめて16 〜クラス設計から実装〜
- Java はじめて17 〜設計後の部品を実装する1〜
- Java はじめて18 〜設計後の部品を実装する2〜
- Java はじめて19 〜コンストラクタの役割を見る〜
- Java はじめて20 〜チェック処理クラスを作る〜
- Java はじめて21 〜オブジェクト指向的分析、アプリの拡張をする〜
- Java はじめて22 〜オブジェクト指向的分析、アプリ拡張の実装とテスト〜
- Java はじめて23 〜テスト駆動型開発を行う〜
- Java はじめて24 〜JUnitでのテスト駆動型開発1〜
- Java はじめて25 〜JUnitでのテスト駆動型開発2: テストケース作成〜
- Java はじめて26 〜JUnitでのテスト駆動型開発3: クラスの実装〜
- Java はじめて27 〜JUnitでのテスト駆動型開発4: 追加修正と実装〜
- Java はじめて28 〜JUnitでのテスト駆動型開発5: ファイル出力の実装〜
- Java はじめて29 〜JUnitでのテスト駆動型開発6: ファイル読み込みのテスト〜
- Java はじめて30 〜JUnitでのテスト駆動型開発7: テストクラスの実装方法〜
- Java はじめて31 〜JUnitでのテスト駆動型開発8: 処理をつなげたテスト〜