使用 Java 将单引号 (') 附加到特殊字符串
Append single quote (') to a Special Character String using Java
我想为仅包含特殊字符的字符串附加单引号。这就是我想要实现的目标:-
String sp = ''{+#)''&$;
结果应该是:-
'''' {+#)''''&$
这意味着对于每个单引号,我们也需要在该特定索引处附加 1 个单引号。
下面是我试过的代码:-
public static String appendSingleQuote(String randomStr) {
if (randomStr.contains("'")) {
long count = randomStr.chars().filter(ch -> ch == '\'').count();
for(int i=0; i<count; i++) {
int index = randomStr.indexOf("'");
randomStr = addChar(randomStr, '\'', index);
}
System.out.println(randomStr);
}
return randomStr;
}
private static String addChar(String randomStr, char ch, int index) {
return randomStr.substring(0, index) + ch + randomStr.substring(index);
}
但这给出的结果是这样的:-
'''''' {+#)''&$
对此有什么建议吗?字符串可以包含偶数和奇数个单引号。
您只需要 replace
:
String str = "''{+#)''&$";
str = str.replace("'", "''");
产出
''''{+#)''''&$
您只需要使用 String .replaceAll()
method:
String sp =" ''{+#)''&$";
sp.replaceAll("\'", "''")
这是一个live working Demo。
注:
当 .replace()
或 .replaceAll()
就足够时,使用 for
循环是一种矫枉过正,无需重新发明轮子。
YCF_L的解决方案应该可以解决您的问题。但是如果你仍然想使用你的方法,你可以试试下面的方法:
public String appendSingleQuote(String randomStr) {
StringBuilder sb = new StringBuilder();
for (int index = 0 ; index < randomStr.length() ; index++) {
sb.append(randomStr.charAt(index) == '\'' ? "''" : randomStr.charAt(index));
}
return sb.toString();
}
它只是遍历您的字符串并将每个单引号 (') 更改为 ('')
我想为仅包含特殊字符的字符串附加单引号。这就是我想要实现的目标:-
String sp = ''{+#)''&$;
结果应该是:-
'''' {+#)''''&$
这意味着对于每个单引号,我们也需要在该特定索引处附加 1 个单引号。
下面是我试过的代码:-
public static String appendSingleQuote(String randomStr) {
if (randomStr.contains("'")) {
long count = randomStr.chars().filter(ch -> ch == '\'').count();
for(int i=0; i<count; i++) {
int index = randomStr.indexOf("'");
randomStr = addChar(randomStr, '\'', index);
}
System.out.println(randomStr);
}
return randomStr;
}
private static String addChar(String randomStr, char ch, int index) {
return randomStr.substring(0, index) + ch + randomStr.substring(index);
}
但这给出的结果是这样的:-
'''''' {+#)''&$
对此有什么建议吗?字符串可以包含偶数和奇数个单引号。
您只需要 replace
:
String str = "''{+#)''&$";
str = str.replace("'", "''");
产出
''''{+#)''''&$
您只需要使用 String .replaceAll()
method:
String sp =" ''{+#)''&$";
sp.replaceAll("\'", "''")
这是一个live working Demo。
注:
当 .replace()
或 .replaceAll()
就足够时,使用 for
循环是一种矫枉过正,无需重新发明轮子。
YCF_L的解决方案应该可以解决您的问题。但是如果你仍然想使用你的方法,你可以试试下面的方法:
public String appendSingleQuote(String randomStr) {
StringBuilder sb = new StringBuilder();
for (int index = 0 ; index < randomStr.length() ; index++) {
sb.append(randomStr.charAt(index) == '\'' ? "''" : randomStr.charAt(index));
}
return sb.toString();
}
它只是遍历您的字符串并将每个单引号 (') 更改为 ('')