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

こんにちは。ゆうせいです。
今回は、プログラミングの中でもとてもよく使う「文字列」について、PythonとJavaの違いや共通点をわかりやすく解説します。
文字列とは、テキスト情報(名前・文章・記号など)のこと。たとえば "Hello"
や "こんにちは"
が文字列ですね。
「文字列の連結ってどうやるの?」
「1文字ずつ取り出したり、切り出したりできるの?」
こんな疑問に答えながら、PythonとJavaの文字列操作の基本から便利ワザまで紹介していきます!
PythonとJavaの文字列の基本
文字列の定義方法
Python:
name = "ゆうせい"
- シングルクォート
' '
でもダブルクォート" "
でもOK!
Java:
String name = "ゆうせい";
- 文字列は必ず
String
型で定義 - ダブルクォート
"
のみを使います
よく使う基本操作
操作 | Python | Java |
---|---|---|
長さの取得 | 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 s | s.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年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
山崎講師2025年4月2日f文字列の中の「:>10,」はどういう意味?
山崎講師2025年4月2日プログラミング言語別「メインメソッド」徹底解説|エントリーポイントの違いとその意味とは?
山崎講師2025年4月2日コメントの正しい書き方とは?—読みやすく、伝わるコードにするためのルールとコツ
山崎講師2025年4月2日セミコロンは必要?不要?—言語ごとのルールと本当の意味を徹底解説!