为了账号安全,请及时绑定邮箱和手机立即绑定

删除字符串中的每个第5个字符并返回新的String

删除字符串中的每个第5个字符并返回新的String

蓝山帝景 2021-04-10 08:25:03
我试图消除字符串的每个第5个字符,除非该字符是空格或点,然后返回新的字符串。此刻,我似乎只能在每五次出现一次时返回字符,而不能操纵它们并返回新的字符串。示例原始字符串:“詹姆斯进了1个进球。他的球队获胜了。”《新弦乐》:“詹姆打进1球!他的球队赢了!”我试图将for循环与选择语句一起使用,但似乎无法正确操作,然后返回完整的新字符串。public class TextProcessorTest{    public static void main(String args[]) {        String sentence = "James scored 1 goal. His team won.";        String newSentence;        StringBuffer buff = new StringBuffer();        int len = sentence.length();        for(int i=4;i<len;i=i+5){            char c = sentence.charAt(i);            System.out.print(c);            if(c == ' '){                buff.append(c);            }else if(c == '.'){                buff.append(c);            }else{                buff.append("");            }        }        newSentence = buff.toString();        System.out.println(newSentence);    }}预期结果是:“詹姆(Jame)攻入1球!他的球队获胜!”实际结果是:“ sr ...”。
查看完整描述

1 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

这很简单。只需忽略每个第5个字符并使用StringBuilder以下命令构建新字符串:


public static String remove(String str) {

    StringBuilder buf = new StringBuilder(str.length());


    for (int i = 1; i <= str.length(); i++)

        if (str.charAt(i - 1) == ' ' || str.charAt(i - 1) == '.' || i % 5 != 0)

            buf.append(str.charAt(i - 1));


    return buf.toString();

}

StringBuilder与StringBuffer

StringBuffer用于并发修改。这是线程安全的。

StringBuilder 用于所有非并发的修改中。


查看完整回答
反对 回复 2021-04-14
  • 1 回答
  • 0 关注
  • 205 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信