LoginSignup
14
14

More than 3 years have passed since last update.

PythonとかJavaScriptとかJavaで先頭と末尾の空白を削除する

Last updated at Posted at 2019-06-10

機能ごとに先頭と末尾の空白を削除しなければならないことがあったので、
言語毎の削除方法を調べてみました。

Python

stripメソッド

引数に任意の文字列を指定することで文字列の先頭と末尾からその文字列を削除することが出来ます。
引数を省略すると、文字列の先頭と末尾の空白やタブを削除することが出来ます。
文字間の空白は削除されません。

使い方
先頭に半角空白、末尾にタブを入れています。

str = ' Hello World '
print(str.strip())

結果

Hello World

先頭を削除したい場合は、
lstripメソッドを使用します。
先頭にタブを入れています。

str = ' Hello World '
print(str.lstrip())

結果

Hello World 

末尾を削除したい場合は、
rstripメソッドを使用します。
末尾に全角空白を入れています。

str = ' Hello World '
print(str.lstrip())

結果

 Hello World

JavaScript

trimメソッド

文字列の先頭と末尾の空白やタブを削除することが出来ます。
文字間の空白については削除されず、
片側だけの空白を削除することは出来ません。
※出来ました。ご指摘ありがとうございます。
片側だけの空白を削除する場合は、trimStart()とtrimEnd()を使用することで可能です。今回はChromeで試したのでエイリアスのtrimLeft()、trimRight()を使用しています。

使い方

let str = ' Hello World ';
console.log(str);
console.log(str.trim());

結果

 Hello World    
Hello World

全角も削除されます。

let str = ' Hello World ';
console.log(str.trim());

結果

Hello World

trimLeftメソッドで先頭の空白をtrimRightメソッドで末尾の空白を取り除きます。

MDN web docsによると、

trimLeftメソッド

String.prototype.padStart のような関数との一貫性を持たせるため、標準メソッドの名前は trimStartに設定されています。

しかし、ウェブの互換性の観点から、 trimLeft は trimStartのエイリアスとして残されます。 いくつかのエンジンでは以下のように解釈されます:
String.prototype.trimLeft.name === "trimStart";

trimRightメソッド

String.prototype.padEnd のような関数との一貫性を持たせるため、標準メソッドの名前は trimEnd に設定されています。

しかし、ウェブの互換性の観点から、 trimRight は trimEndのエイリアスとして残されます。 いくつかのエンジンでは以下のように解釈されます:
String.prototype.trimRight.name === "trimEnd";

とのことですので、
ブラウザによって対応、非対応が存在し、
エイリアスを使用する場合もあります。

let str = ' Hello World ';
console.log(str.trimLeft());
console.log(str.trimRight());

結果

Hello World 
 Hello World

※IE9以下ではtrimメソッドは使用出来ないので、
replaceメソッドを使用する必要があります。

Java

trimメソッドを使用します。
※Java11からはstripメソッドを使えば全角も削除できるようです。

使い方

String str = " Hello World  ";
System.out.println(str);
System.out.println(str.trim());

結果

 Hello World    
Hello World

Javaのtrimメソッドでは全角の空白を削除出来ません。

String str = " Hello World ";
System.out.println(str);
System.out.println(str.trim());

結果

 Hello World 

全角の空白を削除する場合は、
replaceAllメソッドを使用して、
正規表現で置換してしまいます。

以下は、末尾に全角空白があった場合です。

String str = "Hello World ";
System.out.println(str.replaceAll("[ ]+$", ""));

結果

Hello World

参考

14
14
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
14