スタートページJavascriptJava

Javaシリーズの目次

Javaの文法(1)文字列の表示と加工


文字列の表示

System.out.println(文字列); 表示後改行する
System.out.print(文字列); 表示後改行しない

文字列にHTMLタグを付けたとき

public class Main {
  public static void main(String[] args) {
    System.out.println("<h1>h1の行</h1>");
    System.out.println("<p>pの行</p>");
  }
}

出力形式指定を「Text」とすると、タグは文字列として表示されます

<h1>h1の行</h1>
<p>pの行</p>

「HTML」とすると、タグの機能になります。

h1の行

pの行

表示文字列の編集

文字列中の制御文字(エスケープ文字)

    \t      水平タブ文字
    \b      バックスペース
    \n      改行
    \r      キャリッジリターン
    \f      書式送り (Form Feed)
    \'      引用符
    \"      二重引用符
    \\      バックスラッシュ
    \OOO    8進数の文字コード
    \uXXXX  16進数の文字コード
public class Main {
  public static void main(String[] args) {
    System.out.println("この後で\n改行されます。");
    System.out.println("タブ:\tabc\tdefgh\tk");
  }
}

次にように出力文字列を変数にすることもできます。

public class Main {
  public static void main(String[] args) {
    String 改行文 = "この後で\n改行されます。";
    System.out.println(改行文);
    String タグ文 = "タブ:\tabc\tdefgh\tk";
    System.out.println(タグ文);
  }
}

両方とも、次のように出力されます。

    この後で
    改行されます。
    タブ:	abc	defghi	k

+ 結合

文字列や変数値は + で結合できます。

public class Main {
  public static void main(String[] args) {
    int 価格 = 100;
    System.out.println("リンゴの価格は" + 価格 + "円です。");
   }
}
    リンゴの価格は100円です。

String.format

public class Main {
  public static void main(String[] args) {
    int 価格 = 100;
    String 文字列 = String.format("リンゴの価格は%d円です。", 価格);
    System.out.println(文字列);
   }
}
  リンゴの価格は100円です。

上の例では、変数「価格」の値を、%d の位置に %d の形式で埋め込んでいます。

文字列
 %s   文字列そのまま
 %5s     5文字。不足分は右に空白
整数
 %d   値はそのまま  
  %5d   5桁表示。小さいときは左側に空白
 %05d  5桁表示。小さいときは左側に0
 % d     負数の - と合わせるため、正数をずらす
 %,d     3桁ごとに, を付ける
実数
  %f      値はそのまま
  %7f     全体を7桁
  %7.3f   全体を7桁、小数点以下3桁
 % f     負数の - と合わせるため、正数をずらす
 %,f     3桁ごとに, を付ける

値とformatの型がことなるときは、formatの型に変換されます。

Stringクラスのその他のメソッド

length 文字列の長さ

一般形:int 長さ = 文字列.length();   () が必要
 半角でも全角でも1文字を1と数える。
例 String 文字列 = "港区1-3";
    int 長さ = 文字列.length();  // 5

concat 文字列の結合

一般形:String 結合文字列 = 前文字列.concat(String 後文字列);
 結合文字列 = 前文字列 + 後文字列; と同じ機能です。
例 String 前文字列 = "東京都";
    String 後文字列 = "港区";
  String 結合文字列 = 前文字列.concat(後文字列);  // 東京都港区

indexOf 前方一致位置

一般形: int 位置 = 対象文字列.indexOf(検索文字列);
 一致する場合は、対象文字列での最初に一致した位置。一致しない場合は -1
例 String 対象文字列 = "千葉県千葉市";
    Int 位置 = 対象文字列.indexOf("千葉");  // 0

lastIndexOf は後方一致位置
例 Int 位置 = 対象文字列.lastIndexOf("千葉");  // 3

substring 部分文字列

一般形:String 部分文字列 = 文字列.substring(int 開始位置, int 終了位置);
 文字列の開始位置(この値を含む)から終了位置(この値を含まない)を部分文字列にする。
例 String 文字列 = '東京都港区赤坂";
  String 部分文字列 = 文字列.substring(3, 5);  // 港区

replase 文字列の置換

一般形;String 置換後文字列 = 文字列.replace(旧文字列, 新文字列);
 文字列中のすべての旧文字列,が新文字列に置換される。
例 String 文字列 = "東京都港区";
    String 置換後文字列 = 文字列.substring("港区", "中央区");  // 東京都中央区

trim/dtrip 空白等の削除

一般形:String 新文字列 = 文字列.trim();
 文字列の先頭・末尾の空白を削除する。文字列内の空白は削除されない。
 trim でが半角空白のみ、strap は半角・全角空白を対象にする。
例:String 文字列 = "  abc def ";      // "**abc*def**" (* は半角空白)
    String 新文字列 = 文字列.trim();   // "abc*def"

sprit 分割

一般形;String[] 文字列配列 = 文字列.split(区切文字);
  文字列を区切文字で分割して、配列にする。
例 String 文字列 = "abc,def,ghi";
    String[] 配列 = 文字列.sprit(","); // 配列[0]="abc". 配列[1]="efg".配列[2]="ahij"
split(区切文字. 区分数)
String[] 配列 = 文字列.sprit(",", 2); // 配列[0]="abc". 配列[1]="efg,ahij"
複数の区切文字
区切文字を [文字1, 文字2,…]とする。
String 文字列 = "abc;10, def:20, ghi:30";
String[] 配列 = 文字列.sprit("[:,]"); // 配列[0]="abc". 配列[1]="10".配列[2]="def". …
複数空白を一つの空白として分離
区切文字を [ +] とする。
String 文字列 = "  abc def ghi";
String[] 配列 = 文字列.sprit(" +"); // 配列[0]="abc". 配列[1]="efg".配列[2]="ahij"