如何删除字符串上“”之外的所有空格?例如:
0507 ? "Y e a" : "No"
应该返回:
0507?"Y e a":"No"
谢谢你。
如何删除字符串上“”之外的所有空格?例如:
0507 ? "Y e a" : "No"
应该返回:
0507?"Y e a":"No"
谢谢你。
尝试
String s = "0507 ? \"Y e a\" : \"No\"".replaceAll(" +([?:]) +", "$1");
System.out.println(s);
印刷
0507?"Y e a":"No"
- 您可以使用 st.split() 函数按 " 拆分
- 然后仅在数组的偶数索引上应用 st.replaceAll("\s","")
- 然后使用各种实用程序连接数组的所有元素,如 Apache Commons lang StringUtils.join(
例如:
原始字符串 - 0507?“是”:“不是”
用 " ..... {0507 ? ,Y ea, : ,No} 分割后
在数组的偶数索引上应用 st.replaceAll("\s","") .... {0507? ,是的,:,否}
使用 StringUtils.join(s, "\"") 连接...... 0507? "Y e a":"No"
示例代码:
String input="0507 ? \"Y e a\" : \"No\"";
String[] inputParts = input.split("\"");
int i = 0;
while(i< inputParts.length)
{
inputParts[i]=inputParts[i].replaceAll("\\s", "");
i+=2;
}
String output = StringUtils.join(inputParts, "\"");
或尝试 StringTokenizer :读取标记器使用默认分隔符集,即“\t\n\r\f”:空格字符、制表符、换行符、回车符和换页符.
StringTokenizer tok=new StringTokenizer(yourString);
String temp="";
while(tok.hasMoreElements()){
temp=temp+tok.nextElement();
}
System.out.println("temp"+temp);
这段代码
static Pattern groups = Pattern.compile("([^\\\"])+|(\\\"[^\\\"]*\\\")");
public static void main(String[] args) {
String test1="0507 ? \"Y e a\" : \"No\"";
System.out.println(replaceOutsideSpace(test1));
String test2="0507 ?cc \"Y e a\" :bb \"No\"";
System.out.println(replaceOutsideSpace(test2));
String test3="text text text text \"Y e a\" :bb \"No\" \"\"";
System.out.println(replaceOutsideSpace(test3));
String test4="text text text text \"Y e a\" :bb \"No\" \"\" gaga gag ga end";
System.out.println(replaceOutsideSpace(test4));
}
public static String replaceOutsideSpace(String text){
Matcher m = groupsMatcher(text);
StringBuffer sb = new StringBuffer(text.length());
while(m.find()){
String g0=m.group(0);
if(g0.indexOf('"')==-1){g0=g0.replaceAll(" ", "");}
sb.append(g0);
}
return sb.toString();
}
private synchronized static Matcher groupsMatcher(String text)
{return groups.matcher(text);}
印刷
0507?"Y e a":"No"
0507?cc"Y e a":bb"No"
texttexttexttext"Y e a":bb"No"""
texttexttexttext"Y e a":bb"No"""gagagaggaend