Java中實(shí)現(xiàn)String字符串用逗號(hào)隔開(kāi)
String字符串用逗號(hào)隔開(kāi)
在Java中,有兩個(gè)方法可以用逗號(hào)把String分開(kāi)
一個(gè)是
public String[] split(String regex) {
return split(regex, 0);
}另一個(gè)是
public String[] split(String regex, int limit) {
/* fastpath if the regex is a
(1)one-char String and this character is not one of the
RegEx's meta characters ".$|()[{^?*+\\", or
(2)two-char String and the first char is the backslash and
the second is not the ascii digit or ascii letter.
*/
char ch = 0;
if (((regex.value.length == 1 &&
".$|()[{^?*+\\".indexOf(ch = regex.charAt(0)) == -1) ||
(regex.length() == 2 &&
regex.charAt(0) == '\\' &&
(((ch = regex.charAt(1))-'0')|('9'-ch)) < 0 &&
((ch-'a')|('z'-ch)) < 0 &&
((ch-'A')|('Z'-ch)) < 0)) &&
(ch < Character.MIN_HIGH_SURROGATE ||
ch > Character.MAX_LOW_SURROGATE))
{
int off = 0;
int next = 0;
boolean limited = limit > 0;
ArrayList<String> list = new ArrayList<>();
while ((next = indexOf(ch, off)) != -1) {
if (!limited || list.size() < limit - 1) {
list.add(substring(off, next));
off = next + 1;
} else { // last one
//assert (list.size() == limit - 1);
list.add(substring(off, value.length));
off = value.length;
break;
}
}
// If no match was found, return this
if (off == 0)
return new String[]{this};
// Add remaining segment
if (!limited || list.size() < limit)
list.add(substring(off, value.length));
// Construct result
int resultSize = list.size();
if (limit == 0) {
while (resultSize > 0 && list.get(resultSize - 1).length() == 0) {
resultSize--;
}
}
String[] result = new String[resultSize];
return list.subList(0, resultSize).toArray(result);
}
return Pattern.compile(regex).split(this, limit);
}
1.如果我們的需求是要讓分隔符號(hào)可以兼容中英文逗號(hào)
可以用
split(String regex)
比如下面的例子

2.如果我們的需求是取到第一個(gè)逗號(hào)前面的字符串
適合用
split(String regex, int limit)

以逗號(hào)為分割符拼接字符串的技巧
答:
不用那么多if判斷,讓人思維混亂,直接到最后使用deleteCharAt方法去除最后一個(gè)逗號(hào)即可。
實(shí)現(xiàn)代碼如下所示
StringBuffer sb = new StringBuffer();
for (String str: list) {
sb.append(str).append(",");
}
String keywordStr = sb.deleteCharAt(sb.length() - 1).toString();以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- java判斷字符串String是否為空問(wèn)題淺析
- java實(shí)現(xiàn)字符串轉(zhuǎn)String數(shù)組的方法示例
- Java讀取String分行字符串的方法
- 詳解Java String字符串獲取每一個(gè)字符及常用方法
- Java String字符串內(nèi)容實(shí)現(xiàn)添加雙引號(hào)
- Java中實(shí)現(xiàn)String字符串分割的3種方法
- java逗號(hào)分隔String字符串及數(shù)組、集合相互轉(zhuǎn)換
- 利用Java截取String字符串的幾種常用方法
- Java字符串String相關(guān)類常用方法詳解
相關(guān)文章
Java調(diào)用Oracle存儲(chǔ)過(guò)程詳解
這篇文章主要介紹了Java調(diào)用Oracle存儲(chǔ)過(guò)程詳解的相關(guān)資料,需要的朋友可以參考下2017-02-02
深入理解JavaWeb中過(guò)濾器與監(jiān)聽(tīng)器的應(yīng)用
這篇文章主要介紹了JavaWeb中過(guò)濾器與監(jiān)聽(tīng)器的應(yīng)用,過(guò)濾器能夠?qū)ζヅ涞恼?qǐng)求到達(dá)目標(biāo)之前或返回響應(yīng)之后增加一些處理代碼,監(jiān)聽(tīng)器是一個(gè)接口內(nèi)容由我們實(shí)現(xiàn),會(huì)在特定時(shí)間被調(diào)用,感興趣想要詳細(xì)了解可以參考下文2023-05-05
配置pom.xml用maven打包java工程的方法(推薦)
下面小編就為大家?guī)?lái)一篇配置pom.xml用maven打包java工程的方法(推薦)。小編覺(jué)得挺不錯(cuò)的, 現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
idea遠(yuǎn)程調(diào)試spark的步驟講解
今天小編就為大家分享一篇關(guān)于idea遠(yuǎn)程調(diào)試spark的步驟講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03
java 實(shí)現(xiàn)將Object類型轉(zhuǎn)換為int類型
這篇文章主要介紹了java 實(shí)現(xiàn)將Object類型轉(zhuǎn)換為int類型的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
mybatisplus下劃線駝峰轉(zhuǎn)換的問(wèn)題解決
在mybatis-plus中,下劃線-駝峰自動(dòng)轉(zhuǎn)換可能導(dǎo)致帶下劃線的字段查詢結(jié)果為null,本文就來(lái)介紹一下mybatisplus下劃線駝峰轉(zhuǎn)換的問(wèn)題解決,感興趣的可以了解一下2024-10-10
Idea2024創(chuàng)建Maven項(xiàng)目沒(méi)有src文件夾的解決步驟
本文主要介紹了Idea2024創(chuàng)建Maven項(xiàng)目沒(méi)有src文件夾,文中通過(guò)圖文示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02

