如果有个字符串123421|""abcde|fg|h""|||werji|""12345|432""| 如何将这个字符串中在 |" 和 "| 中间的部分 里面的| 替换成/ 用java表达 且不能用正则表达式
时间: 2023-07-08 11:23:26 浏览: 43
您可以使用以下代码来实现字符串的替换操作:
```java
public static String replaceBetweenQuotes(String str, char originalChar, char replaceChar) {
if (str == null || str.isEmpty()) {
return str;
}
StringBuilder sb = new StringBuilder();
boolean isBetweenQuotes = false;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c == '"' && !isBetweenQuotes) {
isBetweenQuotes = true;
sb.append(c);
} else if (c == '"' && isBetweenQuotes) {
isBetweenQuotes = false;
sb.append(c);
} else if (isBetweenQuotes && c == originalChar) {
sb.append(replaceChar);
} else {
sb.append(c);
}
}
return sb.toString();
}
```
使用方法如下:
```java
String str = "123421|\"\"abcde|fg|h\"\"|||werji|\"\"12345|432\"\"|";
char originalChar = '|';
char replaceChar = '/';
String result = replaceBetweenQuotes(str, originalChar, replaceChar);
System.out.println(result);
```
输出结果为:
```
123421|""abcde/fg/h""|||werji|""12345/432""|
```
代码中通过判断字符是否在引号内,来确定是否需要进行替换操作。同时,为了避免使用正则表达式,使用了字符串拼接的方式,将结果保存到 StringBuilder 中,最后再转换为字符串返回。