我正在尝试解决关于正则表达式的scjp测试.
这是一个代码......
import java.util.regex.*;
public class TestRegex {
public static void main(String[] args) {
Pattern p = Pattern.compile(args[0]);
Matcher m = p.matcher(args[1]);
boolean b = false;
while (b = m.find()) {
System.out.print(m.start() + m.group());
}
}
}
Run Code Online (Sandbox Code Playgroud)
和
java TestRegex "\d*" ab34ef
Run Code Online (Sandbox Code Playgroud)
这个测试的答案是01234456.我理解除了最后一个输出(6)之外的所有内容.由于"ab34ef"中的最后一个索引是5,如何打印6?
任何帮助......
我有一个问题,了解线程如何工作:
class ThreadTest implements Runnable{
synchronized void methodA(long n){
for (int i=1;i<3;i++){System.out.print(n+" "+i)}
}
public void run(){
methodA(Thread.currentThread.getId());
}
public static void main(String ... args){
new Thread(new ThreadTest()).start();
new Thread(new ThreadTest()).start();
}
}
Run Code Online (Sandbox Code Playgroud)
正如我目前所理解的,因为methodA在这个方法中是一个同步的for循环,它必须在下一个线程调用这个方法之前完成 - 所以结果必须像4-1 4-2 5-1 5-2...
是否有可能得到一个结果4-1 5-1 5-2 4-2?如果有,怎么样?