一、定義:在單引號、雙引號、三引號內包含一串字元'''name = '姓名'
name = "姓名"
name = """姓名"""
'''二、型別轉換
# 列表轉換為str型別
name = [1,2,3]
print(type(str(name))) # 把列表轉換為str型別,並列印出型別
# 字典轉換為str型別
name =
print(type(str(name))) # dict轉換為str型別
# 元組轉換為str型別
res = (1,2,3)
print(type(str(res))) # tuple轉換為str
# 集合轉換為str型別
res =
print(type(str(res))) # set轉換為str
三、內建方法
# 按索引取值
str1 = "hello python"
print(str1[6]) # 正向取值,按照下標為6的索引取值(第乙個為0,依次向後數)
print(str1[-2]) # 反向取值,按照下標為-2的索引取值(最後乙個為-1,依次向前數)
# 注意:str只能按照索引取值,但是不能按照索引修改值
# 切片(顧頭不顧尾),[:]不寫下標表示從頭到尾全部取
str1 = "hello python"
print(str1[1:8]) # 取出下標為1到8的值
print(str1[0:8:2]) # 取出下標為0到8的值,按照步長為2取值
print(str1[-8:-1]) # 取出下標為-8到-1的值(最後乙個值的小標為-1)
print(str1[::-1]) # 倒著取值,從右到左取值,按照步長為1取值
# len():獲取字串的長度
str1 = "hello python"
print(len(str1))
# 成員運算:in 和 not in
str1 = "hello python"
print('hello' in str1) # 'hello' 是在str1中
print('hello' not in str1) # 'hello' 不在str1中
# split:切分,切分後以列表形式存
str1 = "hello python"
res = str1.split() # 預設以空格為切分
print(res) # 切分後是存為list型別
print(type(res))
str2 = "hello,python"
res2 = str2.split(',') # 括號內指定分隔字元,則按照括號內指定的分隔字元為切分
print(res2)
str3 = 'a,b,c,d,e'
res3 = str3.split(',',1) # 從左到右以逗號為分隔符,分隔1次
print(res3)
str4 = 'a,b,c,d,e'
res4 = str3.rsplit(',',1) # 從右到左以逗號為分隔符,分隔1次
print(res4)
# for迴圈str
str1 = "你好嗎"
for i in str1: # 迴圈字串:for迴圈字串是迴圈字串中的每個值
print(i)
# 移除指定字元
str1 = " name "
print(str1.strip()) # 預設移除字串左右兩邊空格
str2 = "***name****"
print(str2.strip("*")) # 移除字串左右兩邊指定字元
print(str2.lstrip('*')) # 移除字串左邊指定字元
print(str2.rstrip("*")) # 移除字串右邊指定字元
# 修改英文本串中的大小寫
str1 = 'my name is tony!'
print(str1.lower()) # 全部修改為小寫
print(str1.upper()) # 全部修改為大寫
print(str1.capitalize()) # 首字母大寫
print(str1.title()) # 每個英文單詞的首字母大寫
# 判斷字串中以什麼開頭和以什麼結尾
str1 = 'my name is tony!'
res = str1.startswith('my') # 判斷字串中的內容是否以my為開頭
print(res)
res1 = str1.endswith('y!') # 判斷字串中的內容是否以y!為結尾
print(res1)
# format():傳值方式
str = "my name is ,my age is ".format(name = '張三',age = '18') # 指定引數名傳值
print(str)
str1 = "my name is {},my age is {},my ad is {}".format('張三','19','sdfff') # 傳值按照{}對應傳值
print(str1)
str2 = "my name is ,my age is ".format('張三','19') #把format傳入的多個值當作乙個列表,然後用取值
print(str2)
# join:從可迭代物件中取出字串,然後按照指定分隔符進行拼接,拼接的結果也為字串
str1 = "hello"
print('%'.join(str1)) # 從字串中取出『hello』,然後以%號進行分隔符進行拼接
str2 = ['姓名','性別','年齡']
print('|'.join(str2)) # 從列表中取出字串,然後以|號作為分隔符進行拼接
# replace:修改字串中的值
str1 = "my name is 張三,my age is 18"
res = str1.replace('張三','李四') # 用新的字元替換字串中舊的字元,replace('舊值','新值')
print(res)
res1 = str1.replace('my','王五',1) # 替換字串中的值,可以指定修改個數(從第乙個開始算)
print(res1)
# isdigit:判斷字串是否是純數字組成
str1 = '1230'
res = str1.isdigit()
print(res)
# find 和 index :查詢字串中值的索引
str1 = ['姓名','性別','年齡','身高']
print(str1.index('年齡')) # 獲取列表中某個值的索引,index()可針對字串、列表、元組
str2 = "你現在過的好嗎"
print(str2.find('過')) # 獲取字串中某個值的索引,find()只能針對字串
# center:字串居中顯示,center(寬度,'指定字串左右兩邊符號')
str1 = 'name'
print(str1.center(20,'*')) # 顯示寬度為20個字元,字串居中顯示,左右兩邊以*號顯示
print(str1.ljust(20,'*')) # 顯示寬度為20個字元,字串居左顯示,字串右邊以*號顯示
print(str1.rjust(20,'*')) # 顯示寬度為20個字元,字串居右顯示,字串左邊以*號顯示
String字串需要掌握的幾個問題
一 兩種定義方式的區別 string str hello 先在堆記憶體中查詢是否已經有 hello 若有,將str指向已存在的它即可 若堆記憶體中沒有,則新建乙個 hello 物件,並賦給str。string str new string hello 不管堆記憶體中是否已經有 hello 直接新建乙...
字串匹配掌握了嗎?
字串匹配,也就是kmp演算法!這道題的出題人給予我們寬容,所以暴力也是可以解的 這道題目的標準解法應該是kmp,即時間複雜度為o n o n o n 空間複雜度為o m o m o m include bits stdc h using namespace std 設定最長的長度為256 const...
字串操作 靠字串分割字串
字串分解函式。注意strtok比較複雜。要妥善運用!也可以不用strtok函式,但要實現字串靠字串分割比較困難!注意str指向的空間必須是可讀可寫的 如陣列或動態分配的空間 不能為字串常量的指標,因為strtok改變了其中的內容。include include 功能 將str中的字串按照elemon...