日常工作中常见的特殊字符,比如:
圆括号( :split("[(]")
符号:split("\")
斜杆():split("\\")
按位或符号(|):split("\|")
.dot:split("\.")
如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如"name=Bobandage=19andaddress=Beijing",把key和value都分隔出来,可以用split("=|and")
还有的复杂字符串,如果按常规操作,比如按逗号分隔,使用str.split(",")进行分隔,分隔出来的结果不是我们相像的一样,更不是我们想要的结果,比如下面的字符串:
String str = "{"symbol":"KZ","bc2":0,"bc1":0,"bc4":0,"current":null,"bc3":0,"bc5":0,"sc1":0,"bp1":0,"sc3":0,"sc2":0,"bp3":0,"sc5":0,"bp2":0,"sc4":0,"sellpct":0,"bp5":0,"bp4":0,"diff":0,"sp2":0,"sp1":0,"sp4":0,"sp3":0,"sp5":0,"time":1492128000000,"buypct":0,"ratio":0},{"data":{"market":{"status_id":2,"time_zone_desc":null,"region":"US","time_zone":"America/New_York","status":"盘前交易"},"quote":{"current_ext":null,"symbol":"KZ","high52w":null,"percent_ext":null,"delayed":0,"type":0,"tick_size":0.01,"float_shares":null,"high":null,"float_market_capital":null,"timestamp_ext":1611219316579,"lot_size":1,"lock_set":1,"chg":null,"eps":0.8583956470504864,"last_close":7.495,"profit_four":4.043329E7,"volume":null,"volume_ratio":null,"profit_forecast":4.5778666666666664E7,"turnover_rate":null,"low52w":null,"name":"空中网","exchange":"","pe_forecast":null,"total_shares":47103326,"status":0,"code":"KZ","goodwill_in_net_assets":26.62193188386609,"avg_price":null,"percent":null,"psr":null,"amplitude":null,"current":7.495,"current_year_percent":null,"issue_date":1089302400000,"sub_type":"1536","low":null,"market_capital":3.5303942837E8,"shareholder_funds":3.09677E8,"dividend":null,"dividend_yield":null,"currency":"USD","chg_ext":null,"navps":6.5744,"profit":-1.622671E7,"beta":null,"timestamp":1611153000000,"pe_lyr":-18.74,"amount":null,"pledge_ratio":null,"short_ratio":null,"inst_hld":null,"pb":1.1400246978949033,"pe_ttm":9.253,"contract_size":null,"variable_tick_size":null,"time":1611153000000,"open":null},"others":{"pankou_ratio":0,"cyb_switch":true},"tags":[]},"error_description":"","error_code":0}";
如果使用str.split(",")按逗号进行分隔,分隔出来的结果大相径庭,不是我们想要的,这个时候就需要放大招了:
使用split("[,]")来分割:
Console.log(str.split("[,]"));
这才是正确分隔出来的结果:
结果:
[{"symbol":"KZ", "bc2":0, "bc1":0, "bc4":0, "current":null, "bc3":0, "bc5":0, "sc1":0, "bp1":0, "sc3":0, "sc2":0, "bp3":0, "sc5":0, "bp2":0, "sc4":0, "sellpct":0, "bp5":0, "bp4":0, "diff":0, "sp2":0, "sp1":0, "sp4":0, "sp3":0, "sp5":0, "time":1492128000000, "buypct":0, "ratio":0}, {"data":{"market":{"status_id":2, "time_zone_desc":null, "region":"US", "time_zone":"America/New_York", "status":"盘前交易"}, "quote":{"current_ext":null, "symbol":"KZ", "high52w":null, "percent_ext":null, "delayed":0, "type":0, "tick_size":0.01, "float_shares":null, "high":null, "float_market_capital":null, "timestamp_ext":1611219316579, "lot_size":1, "lock_set":1, "chg":null, "eps":0.8583956470504864, "last_close":7.495, "profit_four":4.043329E7, "volume":null, "volume_ratio":null, "profit_forecast":4.5778666666666664E7, "turnover_rate":null, "low52w":null, "name":"空中网", "exchange":"", "pe_forecast":null, "total_shares":47103326, "status":0, "code":"KZ", "goodwill_in_net_assets":26.62193188386609, "avg_price":null, "percent":null, "psr":null, "amplitude":null, "current":7.495, "current_year_percent":null, "issue_date":1089302400000, "sub_type":"1536", "low":null, "market_capital":3.5303942837E8, "shareholder_funds":3.09677E8, "dividend":null, "dividend_yield":null, "currency":"USD", "chg_ext":null, "navps":6.5744, "profit":-1.622671E7, "beta":null, "timestamp":1611153000000, "pe_lyr":-18.74, "amount":null, "pledge_ratio":null, "short_ratio":null, "inst_hld":null, "pb":1.1400246978949033, "pe_ttm":9.253, "contract_size":null, "variable_tick_size":null, "time":1611153000000, "open":null}, "others":{"pankou_ratio":0, "cyb_switch":true}, "tags":[]}, "error_description":"", "error_code":0}]
多个连续分隔符(多个连续字符分割):
access_weight = line_list[2].split(',"')[1].split('"')[0].replace(',','')

本文介绍了如何在Java和Python中使用split()方法按特定特殊字符进行字符串分隔,包括圆括号、符号、斜杆、按位或符号及点号等。针对包含多个分隔符的情况,演示了如何利用正则表达式实现更复杂的分隔,例如在处理'='和'and'分隔键值对的字符串。同时,强调了在处理连续分隔符时,使用正确正则表达式的重要性,如split("[,]")来处理逗号分隔的字符串。"
53509196,5725170,Linux系统下识别USB设备的4种方法,"['Linux系统', '设备管理', '命令行工具', '硬件识别']
3310

被折叠的 条评论
为什么被折叠?



