gpt4 book ai didi

java - 删除标点符号的简单程序

转载 作者:行者123 更新时间:2023-12-01 07:57:34 24 4
gpt4 key购买 nike

我在使用这个小程序时遇到了一个小问题。它应该使用 StringBuilder 实例来删除标点符号。我没有包含所有标点符号,但由于某种原因,当我编译它时,它不会删除感叹号,但会删除其他标点符号。很奇怪。这是我的代码:

import java.lang.StringBuilder;

public class Chapter1Reinforcement8 {

public static StringBuilder removePunctuation(StringBuilder s) {
for (int i=0; i<=s.length(); i++) {
if(s.charAt(i)=='!' | s.charAt(i)=='\'' | s.charAt(i)=='.'| s.charAt(i)==','| s.charAt(i)=='?') {
s.deleteCharAt(i);
}
}
return s;
}

public static void main(String[] args) {
StringBuilder s = new StringBuilder("Let's get Mike, Theresa, and Sam.!?");
System.out.println("The old sentence is: " +s);
StringBuilder newSentence = new StringBuilder();
newSentence = removePunctuation(s);
System.out.println("The new sentence is: " +newSentence);

}
}

有人能看到这里的问题吗?谢谢!

最佳答案

您需要向后迭代StringBuilder:

public static StringBuilder removePunctuation(StringBuilder s) {
for (int i=s.length() - 1; i >= 0; i--) {
if(s.charAt(i)=='!' || s.charAt(i)=='\'' || s.charAt(i)=='.'| s.charAt(i)==','|| s.charAt(i)=='?') {
s.deleteCharAt(i);
}
}

如果向前迭代,当您从位置 i 删除第一个标点符号时,i + 1 处的字符将成为 i 处的新字符;然后你增加i。如果 i 处的新字符是标点符号,则无需再次检查。

关于java - 删除标点符号的简单程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28131673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com