Python 文字列メソッド

# はじめに
Pythonの文字列で利用できるメソッドのまとめメモ。
新しく学べば随時アップデートしていきます。


# 検索系メソッド
## find（）メソッド
文字列の先頭から検索したい文字列を探し、**最初に見つかった位置**（０から始まるインデックス）を返す。
**見つからなかった場合は−1を返す** 。
開始インデックス/終了インデックスは、指定しなければ文字列の先頭/末尾になる。

```Python:使い方
#文字列sからある文字列を検索する。
s.find(検索したい文字列,開始インデックス,終了インデックス)
```

```Python:例
s = 'This is a string.'

#文字列先頭から末尾までで'string'を検索
print(s.find('string'))       # =>10

#文字列’is a’から'string'を検索
print(s.find('string', 5, 8)) # =>-1
```

##rfind()メソッド
findメソッドとは逆に、文字列の末尾から検索を行う。
使い方はfindメソッドと同様。

```Python:使い方
#文字列sからある文字列を検索する。
s.rfind(検索したい文字列,開始インデックス,終了インデックス)
```

```Python:例
s = 'This is a string.That is a string.'

#文字列末尾から先頭までで'string'を検索
print(s.rfind('string'))       # =>27
```

## index()メソッド
find()と同様の動作するが、**見つからなかった場合「ValueError」という例外が発生**する。

```Python:使い方
#文字列sからある文字列を検索する。
s.index(検索したい文字列,開始インデックス,終了インデックス)
```

```Python:例
s = 'This is a string.'
w = 'This is a word.'

#文字列sの末尾から先頭までで'string'を検索
print(s.index('string'))  # =>10
#文字列wの末尾から先頭までで'string'を検索
print(w.index('string'))  # =>ValueError: substring not found
```

## rindex()メソッド
find()に対するrfind()と同様、indexに対するrindex()。
文字列の末尾から検索を行い、**見つからなかった場合「ValueError」という例外が発生**する。
使い方はindexメソッドと同様なので省略。

## endswith()メソッド
文字列が検索したい文字列で終わっている時Trueを返す。そうでない場合、Falthを返す。
開始インデックス/終了インデックスは、指定しなければ文字列の先頭/末尾になる。

```Python:使い方
#文字列sがある文字列で終わっているか調べる。
s.endswith(検索したい文字列,開始インデックス,終了インデックス)
```

```Python:例
s = 'apple'

#文字列sが'e'で終わっているか調べる。
print(s.endswith('e'))  # =>True
#文字列sが'a'で終わっているか調べる。
print(s.endswith('a'))  # =>Falth
```

## startswith()メソッド
文字列が検索したい文字列で始まっている時Trueを返す。そうでない場合、Falthを返す。
開始インデックス/終了インデックスは、指定しなければ文字列の先頭/末尾になる。

```Python:使い方
#文字列sがある文字列で始まっているか調べる。
s.startswith(検索したい文字列,開始インデックス,終了インデックス)
```

```Python:例
s = 'apple'

#文字列sが'a'で始まっているか調べる。
print(s.startswith('e'))  # =>True
#文字列sが'e'で始まっているか調べる。
print(s.startswith('a'))  # =>Falth
```
# 文字列の分割・連結
## split()メソッド
文字列を「区切り文字」で区切り、文字列のリストを作って返す。
区切り文字を指定しない場合、スペース・改行等の空白文字が区切り文字となる。

```Python:使い方
#文字列sを「区切り文字」で区切る。
s.split(区切り文字)
```

```Python:例1
fruits = 'apple,banana,peach'

#文字列fruitsを','で区切り、リストを作成。
print(fruits.split(','))  # =>['apple', 'banana', 'peach']
```

```Python:例2
fruits = 'apple banana peach'
#文字列fruitsをスペースで区切り、リストを作成。
print(fruits.split())  # =>['apple', 'banana', 'peach']
```

```Python:例3
fruits = '''
apple
banana
peach
'''
#文字列fruitsを改行で区切り、リストを作成。
print(fruits.split())  # =>['apple', 'banana', 'peach']

```

## join()メソッド
シーケンス中の要素を連結した文字列を返す。

```Python:使い方
#シーケンスを文字列sで分割し連結した文字列を返す。
s.join(シーケンス)
```

```Python:例
fruits = ['apple', 'banana', 'peach']
#リストfruitsの要素を結合する（区切り文字なし)
print(''.join(fruits)) # =>applebananapeach
#リストfruitsの要素を結合する(区切り文字カンマ)
print(','.join(fruits)) # =>apple,banana,peach
```

# 文字列の書き換え
## strip()メソッド
文字列の先頭および末尾から文字列を削除し、削除した文字列を返す。
「削除する文字列」を指定しない場合、スペース・タブ等の空白文字を削除する。

```Python:使い方
#文字列sの先頭および末尾から文字列を削除する。
s.strip(削除する文字列)
```

```Python:例1
#文字列fruitsの先頭および末尾から1を削除する。
fruits = '1apple1'
print(fruits.strip('1')) # => apple
```
複数の文字も削除可能。

```Python:例2
#文字列fruitsの先頭および末尾から1を削除する。
fruits = '11111apple11111'
print(fruits.strip('1')) # => apple
```
ただし、「削除する文字列」に含まれている文字なら削除してしまうことが注意。

```Python:例3
#文字列fruitsの先頭および末尾からpineを削除する。
#この場合、'p','i','n''e'が削除対象となる。
fruits = 'pineapple'
print(fruits.strip('pine')) # => appl 
```

## upper()メソッド
文字列の英字小文字を英字大文字に変換し、その結果を返す。

```Python:使い方
#文字列sの小文字を大文字に変換する。
s.upper()
```

```Python:例
#文字列fruitsの英字小文字を大文字にする。
fruits = 'Apple'
print(fruits.upper())   # => APPLE
```

## lower()メソッド
文字列の英字大文字を英字小文字に変換し、その結果を返す。

```Python:使い方
#文字列sの大文字を子文字に変換する。
s.lower()
```

```Python:例
#文字列fruitsの英字大文字を小文字にする。
fruits = 'Apple'
print(fruits.upper())   # => apple
```

## ljust()メソッド
文字列を幅を考慮して左寄せした結果を返す。文字列の幅が指定した値に満たない場合、指定した文字で埋める(埋め草文字)。埋め草文字を指定しない場合、スペースで埋める。
右寄せを行う場合はrjust(),中央寄せを行う場合はcenter()メソッドがある。

```Python:使い方
#文字列sの幅を考慮して左寄せする。
s.ljust(幅, 埋め草文字)
```

```Python:例
#埋め草文字-として文字列fruitsの幅を7にする
fruits = 'apple'
print(fruits.ljust(7,'-')) #=> apple--
```

# 参考資料
[Python3.7.4公式ドキュメント](https://docs.python.org/ja/3/library/stdtypes.html#string-methods)