猿问

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

我试图消除字符串的每个第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 ...”。


蓝山帝景
浏览 206回答 1
1回答

慕容3067478

这很简单。只需忽略每个第5个字符并使用StringBuilder以下命令构建新字符串:public static String remove(String str) {&nbsp; &nbsp; StringBuilder buf = new StringBuilder(str.length());&nbsp; &nbsp; for (int i = 1; i <= str.length(); i++)&nbsp; &nbsp; &nbsp; &nbsp; if (str.charAt(i - 1) == ' ' || str.charAt(i - 1) == '.' || i % 5 != 0)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; buf.append(str.charAt(i - 1));&nbsp; &nbsp; return buf.toString();}StringBuilder与StringBufferStringBuffer用于并发修改。这是线程安全的。StringBuilder 用于所有非并发的修改中。
随时随地看视频慕课网APP

相关分类

Java
我要回答