您好,登錄后才能下訂單哦!
這篇文章主要介紹了Dart String字符串的常用方法有哪些的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Dart String字符串的常用方法有哪些文章都會有所收獲,下面我們一起來看看吧。
length 是一個返回整數類型的方法,用于獲取一個字符串的長度,例如:
String str = "Hello World!"; int length = str.length; print(length); // 輸出: 12
在這個例子中, length 的值為12,因為這個字符串有12個字符。
isEmpty 是一個返回布爾值的方法,用于判斷一個字符串是否為空,例如:
String str = ""; bool isEmpty = str.isEmpty; print(isEmpty); // 輸出: true
在這個例子中, isEmpty 的值為true,因為這個字符串是空的。如果字符串不為空,則 isEmpty 的值為false。
isNotEmpty 是一個返回布爾值的方法,與 isEmpty 相反,用于判斷一個字符串是否不為空,例如:
String str = "Hello"; bool isNotEmpty = str.isNotEmpty; print(isNotEmpty); // 輸出: true
在這個例子中, isNotEmpty 的值為true,因為這個字符串不為空。如果字符串為空,則 isNotEmpty 的值為false。
toUpperCase() 是一個方法,用于將一個字符串中所有的小寫字母轉換為大寫字母,例如:
String str = "Hello World!"; String upperCaseStr = str.toUpperCase(); print(upperCaseStr); // 輸出: HELLO WORLD!
在這個例子中, toUpperCase() 方法將原字符串中所有的小寫字母轉換為大寫字母,返回一個新的字符串 HELLO WORLD! 。原字符串 str 的值并沒有變化。
用于將一個字符串中所有的大寫字母轉換為小寫字母,例如:
String str = "Hello World!"; String lowerCaseStr = str.toLowerCase(); print(lowerCaseStr); // 輸出: hello world!
在這個例子中, toLowerCase() 方法將原字符串中所有的大寫字母轉換為小寫字母,返回一個新的字符串 hello world! 。原字符串 str 的值并沒有變化。
用于判斷一個字符串是否以指定的模式(pattern)開頭,返回一個布爾值。例如:
String str = "Hello World!"; bool startsWithHello = str.startsWith("Hello"); print(startsWithHello); // 輸出: true
在這個例子中, startsWith("Hello") 方法判斷字符串 str 是否以 "Hello" 開頭,返回一個布爾值 true 。
用于判斷一個字符串是否以指定的模式(pattern)結尾,返回一個布爾值。例如:
String str = "Hello World!"; bool endsWithWorld = str.endsWith("World!"); print(endsWithWorld); // 輸出: true
在這個例子中, endsWith("World!") 方法判斷字符串 str 是否以 "World!" 結尾,返回一個布爾值 true 。
返回一個布爾值,用于判斷一個字符串是否包含指定的模式(pattern),例如:
String str = "Hello World!"; bool containsHello = str.contains("Hello"); print(containsHello); // 輸出: true
在這個例子中, contains("Hello") 方法判斷字符串 str 是否包含 "Hello" 這個模式,返回一個布爾值 true 。
用于將原字符串中第一個匹配的 oldValue 替換為 newValue ,返回一個新的字符串。例如:
String str = "Hello World!"; String newStr = str.replaceFirst("World", "Dart"); print(newStr); // 輸出: Hello Dart!
在這個例子中, replaceFirst("World", "Dart") 方法將原字符串中第一個匹配的 "World" 替換為 "Dart" ,返回一個新的字符串 "Hello Dart!" 。原字符串 str 的值并沒有變化。
用于將一個字符串中所有的匹配 oldValue 的部分替換為 newValue ,返回一個新的字符串。例如:
String str = "Hello World!"; String newStr = str.replaceAll("o", "e"); print(newStr); // 輸出: Helle Werld!
在這個例子中, replaceAll("o", "e") 方法將原字符串中所有的匹配 "o" 的部分替換為 "e" ,返回一個新的字符串 "Helle Werld!" 。原字符串 str 的值并沒有變化。
用于獲取一個字符串中指定范圍內的子串,返回一個新的字符串。其中, startIndex 表示子串的起始位置(包括該位置的字符), endIndex 表示子串的結束位置(不包括該位置的字符)。例如:
String str = "Hello World!"; String subStr = str.substring(0, 5); print(subStr); // 輸出: Hello
在這個例子中, substring(0, 5) 方法獲取字符串 str 中從位置0開始到位置5(不包括位置5)的子串,返回一個新的字符串 "Hello" 。原字符串 str 的值并沒有變化。注意, substring 方法包括起始位置,不包括結束位置。如果省略 endIndex 參數,則方法會從 startIndex 一直截取到字符串的末尾。
將一個字符串按照指定的分隔符(separator)分割成多個子字符串,返回一個字符串列表。例如:
String str = "Hello World!"; List<String> strList = str.split(" "); print(strList); // 輸出: [Hello, World!]
在這個例子中, split(" ") 方法將字符串 str 按照空格分隔成兩個子串 "Hello" 和 "World!" ,組成一個字符串列表 [Hello, World!] 返回。注意, split() 方法只能接受一個參數,即分隔符。如果省略 separator 參數,則默認按照空格或制表符( \t )進行分割。
用于去掉一個字符串兩端的空格(或其他空白字符),返回一個新的字符串。例如:
String str = " Hello World! "; String newStr = str.trim(); print(newStr); // 輸出: Hello World!
在這個例子中, trim() 方法去掉字符串 str 兩端的空格,返回一個新的字符串 "Hello World!" 。原字符串 str 的值并沒有變化。
比較兩個字符串的大小,返回一個整數值,如果當前字符串比otherString小,則返回一個負數,如果當前字符串比otherString大,則返回一個正數,如果當前字符串和otherString相等,則返回0。 例如:
String str1 = "Hello"; String str2 = "World"; int result = str1.compareTo(str2); print(result); // 輸出: -15
在這個例子中, compareTo(str2) 方法比較字符串 str1 和 str2 的字典序,由于字符串 str1 小于字符串 str2 ,因此返回一個負數 -15 。
用于獲取一個字符串中指定位置的字符的Unicode編碼,返回一個整數。其中, index 表示要獲取的字符的位置,從0開始。例如:
String str = "Hello"; int codeUnit = str.codeUnitAt(1); print(codeUnit); // 輸出: 101,對應字符 'e' 的 Unicode 編碼。
在這個例子中, codeUnitAt(1) 方法獲取字符串 str 中位置為1(即第二個字符)的字符的Unicode編碼,即字符 'e' 的Unicode編碼 101 (根據ASCII編碼表)。
用于查找一個字符串中是否包含指定的子串。如果包含,則返回該子串在原字符串中第一次出現的位置(從左向右計數,從0開始)。如果不包含,則返回-1。其中, substring 表示要查找的子串, startIndex 表示查找的起始位置(從左向右計數,從0開始),可省略,默認為0。例如:
String str = "Hello World!"; int index = str.indexOf("o"); print(index); // 輸出: 4
在這個例子中, indexOf("o") 方法查找字符串 str 中第一次出現的子串 "o" ,找到后返回其位置4。注意,該方法返回的是子串在原字符串中的位置,不是子串長度。如果要查找多個子串,可以在 startIndex 參數中指定上一次查找結束的位置。如果子串不存在,則返回-1。
用于查找一個字符串中是否包含指定的子串。如果包含,則返回該子串在原字符串中最后一次出現的位置(從右向左計數,從0開始)。如果不包含,則返回-1。其中, substring 表示要查找的子串, startIndex 表示查找的起始位置(從右向左計數,從0開始),可省略,默認為字符串末尾。例如:
String str = "Hello World!"; int index = str.lastIndexOf("o"); print(index); // 輸出: 7
在這個例子中, lastIndexOf("o") 方法查找字符串 str 中最后一次出現的子串 "o" ,找到后返回其位置7。注意,該方法返回的是子串在原字符串中的位置,不是子串長度。如果要查找多個子串,可以在 startIndex 參數中指定上一次查找結束的位置。如果子串不存在,則返回-1。
padLeft(width, [padding]) 是一個方法,用于在一個字符串左側填充指定數量的字符。其中, width 表示填充后字符串的總長度, padding 表示用于填充的字符,可省略,默認為空格字符。例如:
String str = "Hello"; String newStr = str.padLeft(10, "-"); print(newStr); // 輸出: -----Hello
在這個例子中, padLeft(10, "-") 方法將字符串 str 左側填充5個 "-" 字符,直到長度達到10,返回一個新的字符串 "-----Hello" 。如果原字符串的長度已經大于等于指定的長度,則不會填充任何字符,直接返回原字符串。
padRight(width, [padding]) 是一個方法,用于在一個字符串右側填充指定數量的字符。其中, width 表示填充后字符串的總長度, padding 表示用于填充的字符,可省略,默認為空格字符。例如:
String str = "Hello"; String newStr = str.padRight(10, "-"); print(newStr); // 輸出: Hello-----
在這個例子中, padRight(10, "-") 方法將字符串 str 右側填充5個 "-" 字符,直到長度達到10,返回一個新的字符串 "Hello-----" 。如果原字符串的長度已經大于等于指定的長度,則不會填充任何字符,直接返回原字符串。
replaceFirstMapped(from, Function matchFunction) 是一個方法,用于基于正則表達式匹配的方式替換一個字符串中第一次出現的符合條件的子串。其中, from 表示要替換的子串的正則表達式, matchFunction 表示匹配到子串后的替換邏輯。例如:
String str = "Hello World!"; String newStr = str.replaceFirstMapped(RegExp(r"(\w+) (\w+)"), (match) { return "${match.group(2)} ${match.group(1)}"; }); print(newStr); // 輸出: World! Hello
在這個例子中, replaceFirstMapped(RegExp(r"(\w+) (\w+)")) 方法基于正則表達式 (\w+) (\w+) 匹配字符串 str 中第一次出現的類似 "Hello World" 的子串。匹配到后,執行匹配函數 (match) {...} 中的邏輯,將子串中的兩個單詞交換位置,返回一個新的字符串 "World! Hello" 。
注意,匹配函數中的 match 參數為 Match 類型,表示匹配到的子串及其分組信息,可以通過 match.group(n) 方法獲取第n個分組中的內容。如果要替換所有匹配到的子串,可以使用 replaceAllMapped() 方法。
replaceRange(start, end, replacement) 是一個方法,用于替換一個字符串中指定范圍內的子串。其中, start 表示要替換的子串的起始位置(從左向右計數,從0開始), end 表示要替換的子串的結束位置(從左向右計數,從0開始,不包含該位置的字符), replacement 表示替換后的字符串。例如:
String str = "Hello World!"; String newStr = str.replaceRange(0, 5, "Hi"); print(newStr); // 輸出: Hi World!
在這個例子中, replaceRange(0, 5, "Hi") 方法將字符串 str 中從位置0到位置5(不包含5)的子串 "Hello" 替換成 "Hi" ,返回一個新的字符串 "Hi World!" 。
注意,替換范圍包括起始位置和結束位置,如果要替換到字符串末尾,可以將 end 參數省略或賦值為字符串長度。
splitMapJoin(pattern, {onMatch, onNonMatch}) 是一個方法,它可以將一個字符串按照指定的模式分割成若干子串,并將每個子串按照指定的方式處理后合并成一個新的字符串。其中, pattern 表示用于匹配子串的模式(可以是一個字符串、一個正則表達式或一個函數), onMatch 表示處理匹配的子串的函數, onNonMatch 表示處理非匹配的子串的函數,如果不指定,則使用默認的處理函數。例如:
String str = "Hello World!"; String newStr = str.splitMapJoin("o", onMatch: (match) => "*", onNonMatch: (nonMatch) => nonMatch.toUpperCase()); print(newStr); // 輸出: HEL* W*RLD!
在這個例子中, splitMapJoin("o", onMatch: (match) => "*", onNonMatch: (nonMatch) => nonMatch.toUpperCase()) 方法將字符串 str 按照 "o" 字符分割成若干子串,匹配的子串會被替換成 "*" ,非匹配的子串會轉換成大寫字母。最后將所有子串合并成一個新的字符串 "HEL* W*RLD!" 。
注意, onMatch 和 onNonMatch 參數可以是函數,函數的參數是子串內容,函數的返回值是處理后的子串內容,也可以是字符串,表示直接替換子串內容。如果使用正則表達式作為模式,可以使用 RegExp 類創建正則表達式對象。
Dart中的字符串是Unicode字符序列,每個Unicode字符對應一個或多個UTF-16編碼的代碼單元。使用 runes 屬性可以獲取字符串中的Unicode字符序列,返回一個可迭代的Unicode字符序列。例如:
String str = "???? Hello Dart!"; Iterable<int> runes = str.runes; for (int rune in runes) { print(rune); }
在這個例子中,字符串 str 中包含了一個Unicode字符 ???? ,使用 runes 屬性獲取字符串的Unicode字符序列,并遍歷輸出每個字符的編碼值。
注意,使用 runes 屬性返回的是Unicode字符序列,每個字符對應一個 int 類型的值,而不是UTF-16編碼的代碼單元序列。如果要將一個Unicode字符序列轉換成一個字符串,可以使用 String.fromCharCodes() 方法。
fromCharCodes() 是一個靜態方法,用于將一個或多個Unicode字符序列轉換成一個字符串。其中,Unicode字符序列可以是一個 List 或一個可迭代對象,每個Unicode字符對應一個 int 類型的數值。例如:
List<int> codes = [72, 101, 108, 108, 111]; // "Hello"的Unicode編碼 String str = String.fromCharCodes(codes); print(str); // 輸出: Hello
在這個例子中,將一個包含字符串 "Hello" 的Unicode編碼列表 [72, 101, 108, 108, 111] 轉換成一個字符串。
注意,使用 fromCharCodes() 方法時需要保證每個Unicode字符所對應的編碼值都是有效的。如果編碼值無效,則該方法會拋出異常。
關于“Dart String字符串的常用方法有哪些”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Dart String字符串的常用方法有哪些”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。