一、字符串的訪問
-
Objective-C: 使用?
characterAtIndex:
?方法訪問字符。
NSString *str = @"Hello, World!";
unichar character = [str characterAtIndex:0]; // 訪問第一個字符 'H'
NSLog(@"%C", character); // 輸出: H
NSString
?內部存儲的是 UTF-16 編碼的字符序列,而不是簡單的字符數組。由于 Unicode 字符的長度可能不同(例如,某些字符由多個 UTF-16 碼點組成),直接通過索引訪問字符可能會導致錯誤。所以只能通過?[str characterAtIndex:0];? 訪問
-
Swift: 使用?
String.Index
?訪問字符。
在 Swift 中,字符串的字符訪問需要通過?String.Index
?來實現,因為 Swift 的字符串是由 Unicode 標量組成的,字符的長度可能不一致(例如,某些字符由多個 Unicode 標量組成)。因此,直接使用整數索引(如?str[1]
)是不允許的
要訪問第二個字符,可以按照以下步驟操作:
let str = "Hello, World!"// 獲取字符串的起始索引
let startIndex = str.startIndex// 計算第二個字符的索引
let secondCharIndex = str.index(startIndex, offsetBy: 1)// 訪問第二個字符
let secondChar = str[secondCharIndex]print(secondChar) // 輸出: e
? Swift 的字符串索引是?String.Index
?類型,而不是簡單的整數。
-
?Python: 通過索引直接訪問字符。
?Python 中的字符串是不可變的序列,可以通過索引直接訪問字符。
s = "Hello, World!"
char = s[0] # 訪問第一個字符 'H'
print(char) # 輸出: H
-
Kotlin: 通過索引直接訪問字符。
Kotlin 中的字符串是?String
?類型,可以通過索引直接訪問字符。
val str = "Hello, World!"
val char = str[0] // 訪問第一個字符 'H'
println(char) // 輸出: H
-
JavaScript: 通過索引直接訪問字符。
JavaScript 中的字符串可以通過索引直接訪問字符。
let str = "Hello, World!";
let char = str[0]; // 訪問第一個字符 'H'
console.log(char); // 輸出: H
二、字符串的遍歷
-
Objective-C: 使用?
characterAtIndex:
?和?for
?循環。
NSString *string = @"中國人民解放軍";for (int i = 0 ; i < string.length; i++) {NSLog(@"遍歷的結果char==%hu",[string characterAtIndex:i]);}
-
Swift: 使用?
String.Index
?或轉換為字符數組后遍歷。
let str = "Hello"
var index = str.startIndex
while index < str.endIndex {let char = str[index]print(char) // 逐個輸出字符index = str.index(index, offsetBy: 1)
}
-
Kotlin: 直接使用?
for
?循環遍歷字符串。
val str = "Hello"
for (char in str) {println(char) // 逐個輸出字符
}
-
JavaScript: 使用?
for
?循環或?for...of
?遍歷字符串。
let str = "Hello";
for (let char of str) {console.log(char); // 逐個輸出字符
}
-
Python: 直接使用?
for
?循環遍歷字符串。
s = "Hello"
for char in s:print(char) # 逐個輸出字符
三、字符串的拼接
-
Objective-C: 使用?
stringByAppendingString:
?或?stringWithFormat:
。
NSString *str1 = @"Hello";
NSString *str2 = @" World!";
NSString *result = [str1 stringByAppendingString:str2];
NSLog(@"%@", result); // 輸出: Hello World!NSString *str1 = @"Hello";
NSString *str2 = @"World";
NSString *result = [NSString stringWithFormat:@"%@ %@!", str1, str2];
NSLog(@"%@", result); // 輸出: Hello World!
-
Python: 使用?
+
?運算符或?join
?方法。
#可以通過 + 連接
#模版語法
str11 = "中國"
str22 = "人民"
str33 = f'{str11}{str22}'
-
Swift: 使用?
+
?運算符或字符串插值。
#可以通過 + 連接
#模版語法
str11 = "中國"
str22 = "人民"
str33 = "\(str11)\(str22)"
-
Kotlin: 使用?
+
?運算符或字符串模板。
#可以通過 + 連接
#模版語法
str11 = "中國"
str22 = "人民"
str33 = "$str11 $str22"
-
JavaScript: 使用?
+
?運算符或模板字符串。
#可以通過 + 連接
#模版語法
str11 = "中國"
str22 = "人民"
str33 = `${str11} ${str22}`