Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.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_android)_Java_Android_String_Lookup_Processor - Fatal编程技术网

如何从字符串中提取带单词的行(java_android)

如何从字符串中提取带单词的行(java_android),java,android,string,lookup,processor,Java,Android,String,Lookup,Processor,我有以下代码: private String ReadCPUinfo() { ProcessBuilder cmd; String result=""; try{ String[] args = {"/system/bin/cat", "/proc/cpuinfo"}; cmd = new ProcessBuilder(args); Process process = cmd.start(); InputStream in = process.g

我有以下代码:

    private String ReadCPUinfo()
 {
  ProcessBuilder cmd;
  String result="";

  try{
   String[] args = {"/system/bin/cat", "/proc/cpuinfo"};
   cmd = new ProcessBuilder(args);

   Process process = cmd.start();
   InputStream in = process.getInputStream();
   byte[] re = new byte[1024];
   while(in.read(re) != -1){
    System.out.println(new String(re));
    result = result + new String(re);
   }
   in.close();
  } catch(IOException ex){
   ex.printStackTrace();
  }
  return result;
 }
和来自/proc/cpuinfo的字符串作为结果。我需要将处理器信息(processor:WordIWantToExtract)提取为字符串,以将其放在TextView中。 我是用Python脚本完成的(将cpuinfo打印到txt文件中,然后用单词“Processor”查找行号,返回行号,然后通过编辑打印这一行)。如何将其移植到Java?

只是一个文本文件。只需使用
BufferedReader
读取内容,而不是使用
ProcessBuilder
。检查前缀“Processor”以提取准确的行

BufferedReader reader = 
        Files.newBufferedReader(Paths.get("/proc/cpuinfo"), StandardCharsets.UTF_8);

while ((line = reader.readLine()) != null) {
    Matcher m = Pattern.compile("Processor: (.*)").matcher(line);
    if (m.find()) {
        System.out.println("Processor is " + m.group(1));
        ...
    }
}

我会使用JSONObject。你可以用“键”处理器和你想要的单词来创建对象。比如说,

Map<String, String> processors = new HashMap<String, String>();
loggingMap.put("Processor", "Word");
JSONObject jsonObject = new JSONObject();
jsonObject.element(processors);
然后您可以从文件中读取该行并使用

jsonObject.getString("Processor");

我使用了一个HashMap,以防您有键和值。

我不确定是否理解您的问题,但我认为您可以在while循环之后添加以下内容:

Matcher matcher = Pattern.compile("Processor: (.*)").matcher(result);
if (matcher.find()) {
    String wordYouWantToExtract = matcher.group(1);
}
Matcher matcher = Pattern.compile("Processor: (.*)").matcher(result);
if (matcher.find()) {
    String wordYouWantToExtract = matcher.group(1);
}