機能ごとに先頭と末尾の空白を削除しなければならないことがあったので、
言語毎の削除方法を調べてみました。
##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
##参考