You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用数组拆分字符串,提取URL_cars_xx中的语言代码?

提取字符串末尾的语言代码方法

嘿,这事儿好办!针对你这种URL_cars_xx固定格式的字符串,我给你几个简单直接的方法,轻松提取最后面的语言代码:

  • 方法一:拆分数组取最后元素
    这是最直观的方式,用下划线把字符串拆成数组后,直接取最后一项就行:

    String selectedItem = adapterView.getItemAtPosition(i).toString();
    // 按下划线拆分字符串为数组
    String[] parts = selectedItem.split("_");
    // 数组最后一个元素就是目标语言代码
    String langCode = parts[parts.length - 1];
    

    只要你的字符串格式固定是「前缀_前缀_语言码」,这个方法百分百管用,代码也容易理解。

  • 方法二:通过索引截取字符串
    如果你不想生成整个数组,可以直接定位最后一个下划线的位置,然后截取后面的内容:

    String selectedItem = adapterView.getItemAtPosition(i).toString();
    // 找到最后一个下划线的位置
    int lastUnderscorePos = selectedItem.lastIndexOf("_");
    // 从下划线的下一位开始截取到末尾
    String langCode = selectedItem.substring(lastUnderscorePos + 1);
    

    要是担心偶尔出现不符合格式的字符串(比如没有下划线),可以加个小判断避免报错:

    String langCode = "";
    int lastUnderscorePos = selectedItem.lastIndexOf("_");
    if (lastUnderscorePos != -1) {
        langCode = selectedItem.substring(lastUnderscorePos + 1);
    }
    
  • 方法三:正则表达式匹配
    如果你习惯用正则,也可以直接匹配最后一个下划线后的内容:

    String selectedItem = adapterView.getItemAtPosition(i).toString();
    // 正则匹配末尾下划线后的字母/数字组合
    Pattern pattern = Pattern.compile("_(\\w+)$");
    Matcher matcher = pattern.matcher(selectedItem);
    String langCode = "";
    if (matcher.find()) {
        langCode = matcher.group(1);
    }
    

    这个方法灵活性更高,要是以后格式有小变化,调整正则就行。

日常用的话,前两种方法足够简单高效,完全能满足你的需求~

内容的提问来源于stack exchange,提问作者Gastón Saillén

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:34:54