我試圖消除字符串的每個(gè)第5個(gè)字符,除非該字符是空格或點(diǎn),然后返回新的字符串。此刻,我似乎只能在每五次出現(xiàn)一次時(shí)返回字符,而不能操縱它們并返回新的字符串。示例原始字符串:“詹姆斯進(jìn)了1個(gè)進(jìn)球。他的球隊(duì)獲勝了?!薄缎孪覙贰罚骸罢材反蜻M(jìn)1球!他的球隊(duì)贏了!”我試圖將for循環(huán)與選擇語句一起使用,但似乎無法正確操作,然后返回完整的新字符串。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); }}預(yù)期結(jié)果是:“詹姆(Jame)攻入1球!他的球隊(duì)獲勝!”實(shí)際結(jié)果是:“ sr ...”。
1 回答

慕容3067478
TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
這很簡(jiǎn)單。只需忽略每個(gè)第5個(gè)字符并使用StringBuilder以下命令構(gòu)建新字符串:
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用于并發(fā)修改。這是線程安全的。
StringBuilder 用于所有非并發(fā)的修改中。
添加回答
舉報(bào)
0/150
提交
取消