如题所述
题主可以使用 Java 反编译软件 JD-GUI,将 class 字节码反编译成 Java 源代码,如图:
但注意反编译后的源码可能不会与真正的源码完全相同。比如原代码为
import java.util.regex.Pattern;import java.util.regex.Matcher;
public class P {
public static void main(String[] args) {
String pattern = "\\({2,}[^\\(\\)]*\\){2,}";
String test = "a((b))c((d)e)f(d(g))(((h)))";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(test);
while (m.find()) {
test = test.replace(m.group(), m.group().replaceAll("\\({2,}", "(").replaceAll("\\){2,}", ")"));
}
System.out.println(test);
}
}
反编译后的代码为
import java.io.PrintStream;import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class P
{
public static void main(String[] paramArrayOfString)
{
String str1 = "\\({2,}[^\\(\\)]*\\){2,}";
String str2 = "a((b))c((d)e)f(d(g))(((h)))";
Pattern localPattern = Pattern.compile(str1);
Matcher localMatcher = localPattern.matcher(str2);
while (localMatcher.find()) {
str2 = str2.replace(localMatcher.group(), localMatcher.group().replaceAll("\\({2,}", "(").replaceAll("\\){2,}", ")"));
}
System.out.println(str2);
}
}
最新版软件在附件中。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-07-10