用java如何才能把其中的英文双引号变成中文的呢?要考虑前后引号,前面的是“,后面的是”。
返回结果:【实现要转移的字符把“单引号”变成“双引号”】
12 个解决方案
#1
有点难度,万一你英文引号漏了一个咋办?
#2
//Sample
import java.util.regex.*;
public class RegexSample {
/**
* @param args
*/
public static void main(String[] args) {
String regex = "\"\\w*?\"";//正则表达式匹配串
String str,str2;
String strOri = "haha\"123\"hehe\"4567\"hihi";//待处理字符串
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(strOri);
while(matcher.find())
{
str = matcher.group();
str2 = str;
str2 = str2.replaceAll("\"", "");//去掉前后引号
str2 = "“"+str2+"”"; //前后添上中文引号
strOri = strOri.replace(str, str2);
}
System.out.println(strOri);//输出结果
}
}
#3
//package com.ricky.www;
/*
如这样一串字符串 【实现要转移的字符把"单引号"变成"双引号"】
用java如何才能把其中的英文双引号变成中文的呢?要考虑前后引号,前面的是“,后面的是”。
返回结果:【实现要转移的字符把“单引号”变成“双引号”】
*/
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test{
public static void main(String[] args){
String content = "【实现要转移的字符把\"单引号\"变成\"双引号\"】";
String result = process(content);
}
public static String process(String content){
String regex = "(.*)\"(.*)\"(.*)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(content);
while(matcher.find()){
content = matcher.group(1) + "“" + matcher.group(2) + "”" + matcher.group(3);
matcher = pattern.matcher(content);
}
System.out.println(content);
return content;
}
}
#4
确实有难度,不说引号少写不少写。如果引号中套用引号了。
比如: 比如"引号中间在有["引号"]的话"这样就能难处理了。
比如: 比如"引号中间在有["引号"]的话"这样就能难处理了。
#5
引号中有引号是不符合规范的,双引号中应该套单引号,所以这个不用担心。
#6
是啊。
#7
楼上有几位想的太复杂了,当然证明几位考虑周到啊
其实我的问题就是排除了引号缺失和引号嵌套问题的,加上这些不确定性大了,但其实也不符合中文规范了,暂时先不考虑吧。
另外解法就只有楼上两位提供的了吗?
其实我的问题就是排除了引号缺失和引号嵌套问题的,加上这些不确定性大了,但其实也不符合中文规范了,暂时先不考虑吧。
另外解法就只有楼上两位提供的了吗?
#8
String orginal= "\"haha\"123\"hehe\"4567\"hihi\"";
String replaced = orginal.replaceAll("\"(.*?)\"", "“$1”");
#9
新手来学习 相信不久后我就能与诸位探讨问题了
#10
你试试这个String s = "\"\"haha\"123\"hehe\"4567\"hihi\"\"";
#11
8楼正解,学习了
String orginal= "\"\"haha\"123\"hehe\"4567\"hihi\"\"";
String replaced = orginal.replaceAll("\"(.*)\"", "“$1”");
String s = replaced.replaceAll("\"(.*?)\"", "“$1”");
System.out.println(replaced);
System.out.println(s);
#12
根据语文标点规范。
双引号中若有引号,其中的引号应该使用单引号,若单引号中再有引号,应使用双引号,也就是这样的:
"abc 'abc "123" defg' defg"
双引号中若有引号,其中的引号应该使用单引号,若单引号中再有引号,应使用双引号,也就是这样的:
"abc 'abc "123" defg' defg"
#1
有点难度,万一你英文引号漏了一个咋办?
#2
//Sample
import java.util.regex.*;
public class RegexSample {
/**
* @param args
*/
public static void main(String[] args) {
String regex = "\"\\w*?\"";//正则表达式匹配串
String str,str2;
String strOri = "haha\"123\"hehe\"4567\"hihi";//待处理字符串
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(strOri);
while(matcher.find())
{
str = matcher.group();
str2 = str;
str2 = str2.replaceAll("\"", "");//去掉前后引号
str2 = "“"+str2+"”"; //前后添上中文引号
strOri = strOri.replace(str, str2);
}
System.out.println(strOri);//输出结果
}
}
#3
//package com.ricky.www;
/*
如这样一串字符串 【实现要转移的字符把"单引号"变成"双引号"】
用java如何才能把其中的英文双引号变成中文的呢?要考虑前后引号,前面的是“,后面的是”。
返回结果:【实现要转移的字符把“单引号”变成“双引号”】
*/
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test{
public static void main(String[] args){
String content = "【实现要转移的字符把\"单引号\"变成\"双引号\"】";
String result = process(content);
}
public static String process(String content){
String regex = "(.*)\"(.*)\"(.*)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(content);
while(matcher.find()){
content = matcher.group(1) + "“" + matcher.group(2) + "”" + matcher.group(3);
matcher = pattern.matcher(content);
}
System.out.println(content);
return content;
}
}
#4
确实有难度,不说引号少写不少写。如果引号中套用引号了。
比如: 比如"引号中间在有["引号"]的话"这样就能难处理了。
比如: 比如"引号中间在有["引号"]的话"这样就能难处理了。
#5
引号中有引号是不符合规范的,双引号中应该套单引号,所以这个不用担心。
#6
是啊。
#7
楼上有几位想的太复杂了,当然证明几位考虑周到啊
其实我的问题就是排除了引号缺失和引号嵌套问题的,加上这些不确定性大了,但其实也不符合中文规范了,暂时先不考虑吧。
另外解法就只有楼上两位提供的了吗?
其实我的问题就是排除了引号缺失和引号嵌套问题的,加上这些不确定性大了,但其实也不符合中文规范了,暂时先不考虑吧。
另外解法就只有楼上两位提供的了吗?
#8
String orginal= "\"haha\"123\"hehe\"4567\"hihi\"";
String replaced = orginal.replaceAll("\"(.*?)\"", "“$1”");
#9
新手来学习 相信不久后我就能与诸位探讨问题了
#10
你试试这个String s = "\"\"haha\"123\"hehe\"4567\"hihi\"\"";
#11
8楼正解,学习了
String orginal= "\"\"haha\"123\"hehe\"4567\"hihi\"\"";
String replaced = orginal.replaceAll("\"(.*)\"", "“$1”");
String s = replaced.replaceAll("\"(.*?)\"", "“$1”");
System.out.println(replaced);
System.out.println(s);
#12
根据语文标点规范。
双引号中若有引号,其中的引号应该使用单引号,若单引号中再有引号,应使用双引号,也就是这样的:
"abc 'abc "123" defg' defg"
双引号中若有引号,其中的引号应该使用单引号,若单引号中再有引号,应使用双引号,也就是这样的:
"abc 'abc "123" defg' defg"