java检查字符串中重复字符的运行
我试图检查是否有人在聊天中输入了一条重复字符太多的消息。我想对所有可能的角色都这样做,并检查它们是否超过某个限制
int WithChars = m.length();
int WithoutChars = m.replace("-", "").length();
if(WithChars - WithoutChars >= 10) {
//Do stuff
}
目前它只检查“-”,但我希望它检查多个字符,因此如果有人键入“<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;<;&或者“aaaaa”它仍然会做这个检查
# 1 楼答案
对于我来说,最简单的解决方法是循环遍历所有字母,检查前一个字母是否相同,如果相同,则增加一个整数,以计算一个字符重复的次数。新字符一出现,就重置该整数。实现这一点的最基本方法(我认为)是创建一个函数,然后在“重复”整数达到10时返回true(在您的例子中),我是这样做的:
请记住,如果要检查重复字符多次(如果字符串为“aaaaaa+192”),则必须使用不同的方法
# 2 楼答案
这是正则表达式的工作
使用^{} 和^{} ,可以轻松搜索重复字符
正则表达式是
(.)\1{9,}
。这很简单:匹配任何字符,捕获它,然后将捕获的字符匹配9次或更多次(第十个字符是您捕获的第一个字符。如果您对正则表达式不熟悉,请花一些时间阅读许多教程中的一个,解释它们的工作原理