PythonとJavaの文字列の扱い方を徹底比較!初心者にもわかるやさしい解説

こんにちは。ゆうせいです。

今回は、プログラミングの中でもとてもよく使う「文字列」について、PythonとJavaの違いや共通点をわかりやすく解説します。

文字列とは、テキスト情報(名前・文章・記号など)のこと。たとえば "Hello""こんにちは" が文字列ですね。

「文字列の連結ってどうやるの?」
「1文字ずつ取り出したり、切り出したりできるの?」

こんな疑問に答えながら、PythonとJavaの文字列操作の基本から便利ワザまで紹介していきます!


PythonとJavaの文字列の基本

文字列の定義方法

Python:

name = "ゆうせい"

  • シングルクォート ' ' でもダブルクォート " " でもOK!

Java:

String name = "ゆうせい";

  • 文字列は必ずStringで定義
  • ダブルクォート " のみを使います

よく使う基本操作

操作PythonJava
長さの取得len(s)s.length()
文字の取得s[0]s.charAt(0)
部分文字列の取得s[1:4](1文字目〜3文字目)s.substring(1, 4)
文字列の連結"Hello" + "World""Hello" + "World"
繰り返し"A" * 3 → "AAA"repeat()(Java 11以降)
大文字・小文字変換s.upper() / s.lower()s.toUpperCase() / s.toLowerCase()
含まれるか"a" in ss.contains("a")

インデックスとスライスの違いに注意!

Pythonでは、スライス(s[開始:終了])がとても便利です。

s = "プログラミング"
print(s[0:4])  # プログ

Javaでは、スライスの代わりにsubstring()を使います。

String s = "プログラミング";
System.out.println(s.substring(0, 4));  // プログ

  • どちらも開始は含むが、終了は含まないのがポイント!

文字列は変更できる?

ここは非常に重要な違いです!

言語文字列の性質解説
Pythonイミュータブル(不変)一度作った文字列は変更できない
Javaイミュータブル同じく変更できない(新しい文字列が生成される)

たとえば:

s = "Hello"
s[0] = "h"  # エラーになる!

String s = "Hello";
s.charAt(0) = 'h';  // これもエラー!


対応策は?

Pythonでは文字列をリストに変換して編集:

s = "Hello"
l = list(s)
l[0] = "h"
s = "".join(l)
print(s)  # hello

JavaではStringBuilderを使います:

StringBuilder sb = new StringBuilder("Hello");
sb.setCharAt(0, 'h');
System.out.println(sb.toString());  // hello


文字列の比較は要注意!

Python:

s1 = "abc"
s2 = "abc"
print(s1 == s2)  # True(中身の比較)

Java:

String s1 = new String("abc");
String s2 = new String("abc");

System.out.println(s1 == s2);         // false(参照の比較)
System.out.println(s1.equals(s2));    // true(中身の比較)

Javaでは==ではなく、.equals()で比較しましょう!


まとめ

  • PythonもJavaも、文字列は強力なデータ型で多くの便利な操作ができる
  • スライスや文字の取得など、書き方が似ているけれど微妙に違う
  • 両方とも文字列は**イミュータブル(変更不可)**なので、編集には工夫が必要
  • Javaでは**==ではなく.equals()で比較する**ことに注意!

次に学ぶと良いこと

  • 正規表現(regex)を使って文字列のパターンマッチングを学ぶ
  • 文字列フォーマット(f文字列、String.format())の使い方
  • リストや配列との変換join()split()の使い方
  • Unicodeやエンコーディングの理解(国際化対応)

文字列は「入力」「表示」「データ処理」など、どの場面でも登場します。
この機会に、しっかり基本を押さえておきましょう!

もっと知りたい操作があれば、お気軽に聞いてくださいね!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。