文字列の宣言

文字列を格納するための変数はString 型(クラス)として宣言できます。たとえば、color という名前の文字列は以下のように宣言できます。

String color;

文字列の初期化

宣言と同時にリテラルを代入することにより文字列を初期化することができます。たとえば、初期値として“black” という文字列を格納する場合は以下のように書きます。

String color = "black";

String クラスの変数は通常の変数と同様、宣言時以外でも何度でも代入演算を行うことができます。

文字列の入力

Scannerのnextメソッドを用いて、入力された文字列をString型の変数に読み込むことができます。nextメソッド は空白・タブ・改行区切りで文字列を変数に読み込みます。 たとえば、文字列の変数 number に、標準入力から1つの文字列を入力するには以下のように記述します。

Scanner sc = new Scanner(System.in);
String number = sc.next();

次のプログラムは文字列の入出力を行うプログラムです。このプログラムは整数n、n 個の文字列を順番に入力し、それらに番号を付けて出力します。

import java.util.Scanner;

class Main{
    public static void main(String[] args){
	Scanner sc = new Scanner(System.in);
	int n;
	String color = "black";
	color = "while";
	System.out.println("0: " + color);
	n = sc.nextInt();
	for ( int i = 1; i <= n; i++ ){ 
	    color = sc.next();
	    System.out.println(i + ": " + color);
	}
    }
}

たとえば、上のプログラムに

5
red   bule yello

pink
        green

のような(空白や空行が混ざった)データを入力すると、以下のように出力されます。

0: white
1: red
2: blue
3: yellow
4: pink
5: green

文字列の基本操作

String 型の文字列の各要素(文字)へはcharAtメソッドでアクセスします。文字列の長さはlengthメソッドで取得することができます。これは、String クラスのメソッドで. (ドット) 演算子で呼び出します。 たとえば、次のプログラムは、文字列の基本操作を行うプログラムです。

String greeting = "Hello";
for ( int i = 0; i < greeting.length(); i++ ){
    char ch = Character.toUpperCase(greeting.charAt(i));
    System.out.print(ch);
}
System.out.println();
// HELLO が出力される

文字から数値への変換

アスキーコードにおいて、数字は連続したコードが割り当てられているので、文字である数字を整数に変換したい場合は '0' という文字を対象となる文字から引きます。以下にいくつか、例をあげます:

int a = '0' - '0'; // a は 0 
int b = '1' - '0'; // b は 1
int c = '2' - '0'; // c は 2

たとえば、文字列 number の文字 i を整数に変換する場合は以下のように記述します:

int num;
num = number.charAt(i) - '0';

Reference

 

オンラインジャッジではじめるC/C++プログラミング入門 (マイナビ)

AIZU ONLINE JUDGE のコース問題を題材にした解説書です。各トピックごとに C/C++ 言語の基礎的な内容を学習し、Introduction to Programming の演習問題にチャレンジしていきます。内容は敷居の高いものではなく、プログラミング初学者が取り組む例題からスタートしています。