3个回答
展开全部
java找出连续出现三次的字符,可以使用正则表达式,如下代码:
package com.qiu.lin.he;
import java.util.regex.Pattern;
public class CeShi {
public static void main(String[] args) {
// 定义一个字符串
String string = "adfaasfwqpkwefapadgjqw";
// 遍历字符串的所有字符
for (int i = 0; i < string.length(); i++) {
// 取得第i个字符,也可以用Character.toString(string.charAt(i));
String s = string.substring(i, i + 1);
// 如果通过s在这个字符串中出现了至少3次,输出该字符
if (Pattern.matches(".*" + s + ".*" + s + ".*" + s + ".*", string)) {
System.out.println(s);
}
}
}
}
运行结果如下:
展开全部
String str = "what is your name?";
Pattern pattern = Pattern.compile("
\\w{3
, str.length}");
Matcher matcher = pattern.matcher(str);
while(matcher.find()){
// 打印连续出现三次的字符~
System.out.println(matcher.group());
}
追问
确定表达式没有问题么?
为什么我照搬执行报Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed counted closure near index 6
\w{3,str.length}?
追答
// 下面这个我测试了一把,可以run
String str = "what is yourrrr name?";
// 注意这句要在一行
Pattern pattern = Pattern.compile("(
\\w)\\1{3
,}");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
// 打印连续出现三次的字符~
System.out.println(matcher.group());
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用正则表达式吧,方法不唯一
//定义一个字符串
String string="adfaasfwqpkwefapadgjqw";
//遍历字符串的所有字符
for(int i=0;i<string.length();i++){
//取得第i个字符,也可以用Character.toString(string.charAt(i));
String s= string.substring(i, i + 1);
//如果通过s在这个字符串中出现了至少3次,输出该字符
if(Pattern.matches(".*" + s+ ".*" + s + ".*" + s+".*" ,string)){
System.out.println(s);
}
}
其中.代表任意字符,当然也可以包含s。*表示0个或多个。.*连起来就是任意多个任意字符的意思。然后拼接字符串表示s至少出现3次,前后、中间可以是任意字符,也可以什么都没有。
追问
我要的是连续出现3次的字符,亲~你的正则表达式只能打印总共出现3次的字符~
追答
。。。。题目看错了-_-!
if判断替换成
Pattern.matches(".*" + s+ s + s+".*" ,string)
也可以用
string.indexOf(s+s+s)!=-1
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询