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年11月2日Pythonの「なるほど!」と思えるユニークな機能④
山崎講師2025年11月2日Pythonの「なるほど!」と思えるユニークな機能③
山崎講師2025年11月2日Pythonの「なるほど!」と思えるユニークな機能②
山崎講師2025年11月2日Pythonの「なるほど!」と思えるユニークな機能①