消除连续的三个字符java实现,若消除后的字符串还有三个连续字符则继续消除直到不能消为止,例如aaaabbbc,消去后变成ac。
时间: 2024-05-13 20:13:40 浏览: 130
可以这样实现:
```
public static String removeTriple(String str) {
boolean hasTriple = true;
while (hasTriple) {
hasTriple = false;
StringBuilder sb = new StringBuilder(str);
for (int i = 0; i < sb.length() - 2; i++) {
if (sb.charAt(i) == sb.charAt(i + 1) && sb.charAt(i + 1) == sb.charAt(i + 2)) {
sb.delete(i, i + 3);
hasTriple = true;
break;
}
}
str = sb.toString();
}
return str;
}
```
这个函数会不断查找字符串中是否有连续三个相同的字符,如果有则删除之,并重新查找,直到没有连续三个相同的字符为止。对于输入的字符串 aaaabbbc,该函数会返回 ac。
相关问题
java怎么去除一个字符串最后两个字
可以使用 `substring()` 方法来去除一个字符串最后两个字,具体代码如下:
```
String s = "hello world";
s = s.substring(0, s.length() - 2);
System.out.println(s);
```
输出结果为:
```
hello worl
```
在上面的代码中,`s.substring(0, s.length() - 2)` 表示截取从字符串 `s` 的第 0 个字符开始,到 `s` 的倒数第三个字符(即去除最后两个字符)为止的所有字符。
java补充10位字符串到15位
您可以使用字符串的拼接方法实现在字符串后面补充字符的功能。以下是一种Java实现方式:
```java
public static String addPadding(String str, char padChar, int targetLength) {
if (str == null) {
return null;
}
int currentLength = str.length();
if (currentLength >= targetLength) {
return str;
}
StringBuilder sb = new StringBuilder();
sb.append(str);
for (int i = 0; i < targetLength - currentLength; i++) {
sb.append(padChar);
}
return sb.toString();
}
```
上面的方法接收三个参数:原始字符串`str`、用于补充的字符`padChar`和目标长度`targetLength`。如果原始字符串长度已经大于等于目标长度,则直接返回原始字符串。否则,在原始字符串后面不断拼接补充字符,直到达到目标长度为止。
您可以使用以下方式调用该方法:
```java
String str = "abc";
char padChar = '0';
int targetLength = 15;
String result = addPadding(str, padChar, targetLength);
System.out.println(result); // 输出 "abc00000000000"
```
在上面的示例中,我们将字符串`"abc"`补充到长度为`15`,用字符`'0'`进行补充。