当前位置: 首页 > article >正文

不同开发语言对字符串的操作

一、字符串的访问

  • 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}`


    http://www.kler.cn/a/579652.html

    相关文章:

  • 一文理清概念:数据中台(DMP)-数据仓库(DW)-数据湖(DL)-湖仓一体-数据治理(DG)
  • SpringMVC概述以及入门案例
  • Hadoop、Spark、Flink Shuffle对比
  • 音乐API
  • 渗透测试之利用sql拿shell(附完整流程+防御方案)【下】
  • 机器学习实战——音乐流派分类(主页有源码)
  • 行为模式---观察者模式
  • 生物信息学与计算生物学:各自概念、主要内容、区别与联系、发展展望?
  • Gazebo不报错但是没有机器人模型
  • MySQL配置文件my.cnf和mysql.cnf、mysqld.cnf的区别
  • AI智能体崛起,“智能经济”加速跑,GAI认证助力未来
  • CCF-CSP第36次认证第四题——跳房子【优化思路:预处理区间最大值】
  • 小智智能体语言大模型硬件软件开发
  • 深度解析前端页面性能优化
  • Python零基础学习第三天:函数与数据结构
  • 面试之《vue常见考题》
  • Python的for循环和while
  • vscode带参数调试
  • IU5380C同步降压型2~4节多类型锂电池充电管理IC
  • 题解:CF633D Fibonacci-ish