Pythonの文字列操作をまとめてみた

# はじめに
Pythonでコーディングをしていて、文字列を操作する際に使えそうな組み込み型メソッドがあったので、自身の備忘録としてまとめてみました。
系統の分け方については個人の感覚で系統立てておりますので、あしからず。

#整形系
### formatメソッド
文字列中の値をindexを用いて後述することが可能
変数と合わせて使うと文字列を編集することが楽になる

```python:
print("This test is {0} for {1}.".format("easy", "you"))
# This test is easy for you.
```
```python:変数を用いた場合
hoge = "easy"
fuga = "you"
print("This test is {0} for {1}.".format(hoge, fuga)) 
# This test is easy for you.
```
### joinメソッド
引数の間にメソッドの前の値を加えていく
引数から始まる点と引数の最後の文字以降には加えられない

```python:
upper_hoge = "ABC"
lower_hoge = "abc"
print(lower_hoge.join(upper_hoge)) # AabcBabcC
```
### replaceメソッド
文字列中の文字を置換する
１番目の引数が置換前の文字
２番目の引数が置換後の文字
３番目に引数を与えた場合は、置換する文字の数を指定することができる

２番目の引数にブランクを設定することで、対象の文字を削除することができる

```python
hoge = "ababab"
print(hoge.replace('a', 'A'))  # AbAbAb
print(hoge.replace('a', 'A', 1))  # Ababab
print(hoge.replace('a', 'A', 2))  # AbAbab
print(hoge.replace('a', '')) # bbb
```

### stripメソッド
先頭と末尾から対象の文字列を除去する
引数に含まれる文字列は順序関係なく、その集合が合致すれば処理される
引数がない場合は文字列を除去する

```python:
hoge = "    A testAtestAtest A     "
# 先頭と末尾のブランクが除去される
print(hoge.strip())  # A testAtestAtest A
# 先頭と末尾がブランクのためAが除去されない
print(hoge.strip('A'))  #    A testAtestAtest A     

fuga = "A testAtestAtest A"
# 先頭と末尾のAが除去される
print(fuga.strip('A'))  #  testAtestAtest 
# 先頭と末尾から見ていき、引数の'A','t',' 'のいずれにも該当しないところまでが除去される
print(fuga.strip(("At "))) # estAtestAtes
```
### lstripメソッド
末尾から対象の文字列を除去する
引数に含まれる文字列は順序関係なく、その集合が合致すれば処理される
引数がない場合はブランクを除去する

```python:
hoge = "    A testAtestAtest A     "
# 先頭のブランクのみが除去される
print(hoge.lstrip())  # A testAtestAtest A
# 先頭がブランクのため、引数のAまでたどり着かないので何も除去されない
print(hoge.lstrip('A'))  #     A testAtestAtest A

fuga = "A testAtestAtest A"
# 先頭のAのみが除去される
print(fuga.lstrip('A'))  #  testAtestAtest A
# 先頭から見ていき、引数の'A','t',' 'のいずれにも該当しないところまでが除去される
print(fuga.lstrip(("At ")))  # estAtestAtest A
```

### rstripメソッド
末尾から対象の文字列を除去する
引数に含まれる文字列は順序関係なく、その集合が合致すれば処理される
引数がない場合はブランクを除去する

```python:
hoge = "    A testAtestAtest A     "
# 末尾のブランクのみが除去される
print(hoge.rstrip())  #     A testAtestAtest A
# 末尾がブランクのため、引数のAまでたどり着かないので何も除去されない
print(hoge.rstrip('A'))  #     A testAtestAtest A     

fuga = "A testAtestAtest A"
# 末尾のAのみが除去される
print(fuga.rstrip('A'))  # A testAtestAtest 
# 末尾から見ていき、引数の'A','t',' 'のいずれにも該当しないところまでが除去される
print(fuga.strip(("At "))) # A testAtestAtes
```


#検索系
### findメソッド
先頭から数えて、どこに該当する文字が存在するかを返す
該当する文字が存在しない場合は「−1」を出力する
引数に検索開始位置と終了位置を渡すことも可能
(終了位置の値はの一つ前までのindexが検索対象になるので注意！)

```python:
hoge = "test"
print(hoge.find('t'))  # 0
print(hoge.find('a'))  # −1
print(hoge.find('t', 1, 4))  # 3
print(hoge.find('t', 1, 2))  # -1
```

### countメソッド
リスト中のある文字の数を出力する

```python:
#今回はtの数を出力させる
hoge = "test"
print(hoge.count('t'))  # 2
```

# 分割系
### splitメソッド
引数の文字で文字列を分解し、リストに格納する
２番目の引数はsplitする回数

```python:
hoge = "a b c d e f g"
print(hoge.split(' '))  # ['a', 'b', 'c', 'd', 'e', 'f', 'g']
print(hoge.split(' ', 0))  # ['a b c d e f g']
print(hoge.split(' ', 1))  # ['a', 'b c d e f g']
print(hoge.split(' ', 4))  # ['a', 'b', 'c', 'd', 'e f g']
```

### rsplitメソッド
splitメソッド同様文字列を分解するが、splitする際は右側からsplitされる
２番目の引数はsplitする回数

```python:
hoge = "a b c d e f g"
print(hoge.rsplit(' '))  # ['a', 'b', 'c', 'd', 'e', 'f', 'g']
print(hoge.rsplit(' ', 0))  # ['a b c d e f g']
print(hoge.rsplit(' ', 1))  # ['a b c d e f', 'g']
print(hoge.rsplit(' ', 4))  # ['a b c', 'd', 'e', 'f', 'g']
```


#判別系
### startswithメソッド
文字列の始まりを判別するメソッド
引数で始まっている場合はtrue、そうでない場合はfalseを返す

```python:
hoge = "test"
print(hoge.startswith('te'))  # True
print(hoge.startswith('tt'))  # False
```

### endswithメソッド
文字列の終わりを判別するメソッド
引数で終わっている場合はtrue、そうでない場合はfalseを返す

```python:
hoge = "test"
print(hoge.endswith('st'))  # True
print(hoge.endswith('tt'))  # False
```

# 大文字・小文字の変換系
### upperメソッド
文字列を大文字に変換する

```python:
lower_hoge = "abc"
print(lower_hoge.upper())  # ABC
```
### lowerメソッド
文字列を小文字に変換する

```python:
upper_hoge = "ABC"
print(upper_hoge.lower())  # abc
```
### swapcaseメソッド
大文字と小文字を入れ替える

```python:
hoge = "AbcDefG"
print(hoge.swapcase())  # aBCdEFg
```

### capitalizeメソッド
先頭の文字を大文字化する

```python:
hoge = "test"
print(hoge.capitalize())  # Test
```


# 参考
・Python 3.7.5 ドキュメント
https://docs.python.org/ja/3.7/library/stdtypes.html#string-methods