如何从任意长度的逗号分隔字符串中移除最后两个元素?
移除逗号分隔地址字符串的最后两个部分
问题描述
我有一个本质为地址的字符串,长度不固定,以逗号作为分隔符。无论长度如何,我需要移除其中最后两个部分。
示例输入:
Business Name, Street, Town, City, Region, Postcode
所需输出:Business Name, Street, Town, City
核心思路
通过「分割字符串→截取目标部分→重新拼接」的三步操作实现:
- 按逗号分割字符串得到各部分的列表,同时清理每个部分前后的空格(适配示例中逗号后带空格的格式)
- 截取列表中除最后两个元素外的所有元素
- 用「逗号+空格」将截取后的列表重新拼接成字符串
代码实现(多语言示例)
Python
address = "Business Name, Street, Town, City, Region, Postcode" # 分割并清理每个部分的空格 parts = [part.strip() for part in address.split(',')] # 处理边界情况:如果部分数量≤2,返回空字符串(可根据需求调整) if len(parts) <= 2: result = "" else: result = ', '.join(parts[:-2]) print(result) # 输出: Business Name, Street, Town, City
JavaScript
const address = "Business Name, Street, Town, City, Region, Postcode"; // 分割并清理空格 const parts = address.split(',').map(part => part.trim()); // 截取并拼接,边界情况自动返回空(当parts长度≤2时,slice(0,-2)返回空数组) const result = parts.slice(0, -2).join(', '); console.log(result); // 输出: Business Name, Street, Town, City
Java
public class AddressProcessor { public static void main(String[] args) { String address = "Business Name, Street, Town, City, Region, Postcode"; String[] parts = address.split(","); // 清理每个部分的空格 for (int i = 0; i < parts.length; i++) { parts[i] = parts[i].trim(); } // 处理边界情况 if (parts.length <= 2) { System.out.println(""); return; } // 拼接前n-2个部分 StringBuilder result = new StringBuilder(); for (int i = 0; i < parts.length - 2; i++) { if (i > 0) { result.append(", "); } result.append(parts[i]); } System.out.println(result.toString()); // 输出: Business Name, Street, Town, City } }
边界情况说明
- 如果输入字符串只有2个或更少的部分(比如
A, B或A),上述代码会返回空字符串,你可以根据实际需求修改逻辑(比如返回原字符串)。
内容的提问来源于stack exchange,提问作者Simon
相关产品推荐
相关产品推荐

