这个代码也许能帮助你: //解析算术表达式 class ScriptTest{ public ScriptEngine se; public ScriptTest(){ ScriptEngineManager sem = new ScriptEngineManager(); se = sem.getEngineByExtension("js"); } public Object cal(String expression){ Object result = null; try{ result = se.eval(expression); }catch(Exception e){ e.printStackTrace(); System.out.println("Error occured"); } return result; } }
String str = "啊啊啊3";
Pattern pattern = Pattern.compile("(.)\\1{2}.{1}");
Matcher matcher = pattern.matcher(str);
System.out.println(matcher.matches());
}
public static void main(String[] args) {
String str = "arxxdxxx2啊啊啊322334";
Pattern pattern = Pattern.compile("(.)\\1{2}.");
Matcher matcher = pattern.matcher(str);
while(matcher.find()){
System.out.println(matcher.group());
}
}
public class StringTest {
public void setNull(String[] arr){
for(int i=0;i<arr.length;i++){
arr[i] = "";
}
}
public String getString(String[] arr){
StringBuffer buffer = new StringBuffer();
for(int i=0;i<arr.length;i++){
buffer.append(arr[i]);
}
return buffer.toString();
}
public void service(){
String str = "";
str = "asadsdhgfhaaa1hfhdfhg";
// str = "三四个地块j阿萨hhh阿斯达";
String[] arr = new String[4];
for(int i=0;i<str.length()-4;i++){
// System.out.println(str.substring(i,i+1));
arr[0] = str.substring(i,i+1);
arr[1] = str.substring(i+1,i+2);
if(arr[0].equals(arr[1])){
arr[2] = str.substring(i+2,i+3);
if(arr[1].equals(arr[2])){
arr[3] = str.substring(i+3,i+4);
System.out.println(getString(arr));
}else{
setNull(arr);
}
}else{
setNull(arr);
}
}
}
public static void main(String[] args) {
StringTest test = new StringTest();
test.service();
}
}
感觉得穷举列出来呢。。
String str2 = "222011105559AAAB8888C";
Matcher m1 = Pattern.compile("((.)\\2{2,}[^0])").matcher(str2);
while(m1.find()){
System.out.print(m1.group()+" ");
}
}
}
for(Matcher mcr=Pattern.compile("(.)\\1{2}(?!\\1).").matcher(str);mcr.find();){
System.out.println(mcr.group());
}
class ScriptTest{
public ScriptEngine se;
public ScriptTest(){
ScriptEngineManager sem = new ScriptEngineManager();
se = sem.getEngineByExtension("js");
}
public Object cal(String expression){
Object result = null;
try{
result = se.eval(expression);
}catch(Exception e){
e.printStackTrace();
System.out.println("Error occured");
}
return result;
}
}