Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java matcher.group(1)未返回任何结果_Java_Android_Design Patterns_Matcher - Fatal编程技术网

Java matcher.group(1)未返回任何结果

Java matcher.group(1)未返回任何结果,java,android,design-patterns,matcher,Java,Android,Design Patterns,Matcher,我想从/proc/cpuinfo txt文件中打印一行,比如Processor:RESULT,其中RESULT是matcher.group1。但是我的结果中没有文本,我的问题在哪里?这就是我的/proc/cpuinfo的样子: public class GetProp extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(s

我想从/proc/cpuinfo txt文件中打印一行,比如Processor:RESULT,其中RESULT是matcher.group1。但是我的结果中没有文本,我的问题在哪里?

这就是我的/proc/cpuinfo的样子:

    public class GetProp extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String file_proc = readFile();
        TextView tv = (TextView)findViewById(R.id.tv);
        tv.setText("Read File contents from SDCARD : \n" + file_proc);
    }
    public String readFile(){
        BufferedReader rdr;
        String proc = "";
        String line;
        int lineNumber = 0;
        try {
            rdr = new BufferedReader(new FileReader("/proc/cpuinfo"));     
            while ((line = rdr.readLine()) != null) {
                lineNumber++;
            Matcher matcher = Pattern.compile("Processor: (.*)").matcher(line);
            if (matcher.find()) {
                proc = matcher.group(1);
            }
            }           
        } catch (Exception e) {
            e.printStackTrace();
        }
        return proc;        
    }
}
您的正则表达式有两个问题:

正则表达式区分大小写。将其更改为processor,或使用Pattern.compile…,Pattern.CASE\u不区分大小写。 处理器和冒号之间有空格。您应该将正则表达式更改为processor\\s*:*
嗯,使用group1将是一个开始。您可能找不到任何匹配项。检查输入。
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 42
/* etc */