在java中怎么获取以下字符串中的某一个字符串?急急急急急。。 5C

java代码:
InputStream in = channel.getInputStream();
reader = new BufferedReader(new InputStreamReader(in));
String buf = null;
while ((buf = reader.readLine()) != null) {
System.out.println(buf);
}
以下是我在java程序中得到并输出的一个字符串buf:

--- Volume group ---
VG Name rootvg
System ID

Format lvm2
Metadata Areas 1
Metadata Sequence No 8
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 6
Open LV 4
Max PV 0
Cur PV 1

输出的字符串格式如上,
现在我的问题是我想获取得到VGName:rootvg这样类似的值,
请问有没有什么好的方法来获取这个字符串呢?还望指教!!!

8个回答

subString截取可以
或者是 你用 map的 key 和value 的特点来实现 这个可以把他们获取成一个一个的

theUncle
theUncle 你的意思是打印的时候就截取字符串吗?还是怎么?
3 年多之前 回复

你原来的数据格式是什么样子的?

theUncle
theUncle 我的java代码里面循环答应了一下字符串,现在我想从这个总的里面捞取出一些信息
3 年多之前 回复
theUncle
theUncle 就是上面说的 输出的字符串buf
3 年多之前 回复

你这些字符串有些乱,不好获取。我觉得要在文件源把数据格式弄好来才有利于解析,可以使用json格式

用正则表达式,把一行中最后一个单词作为value,把一行中除去最后一个单词和中间的空格,作为key。

正则表达式匹配,给你个例子

     private static void getStrings() {
        String str = "rrwerqq84461376qqasfdasdfrrwerqq84461377qqasfdasdaa654645aafrrwerqq84461378qqasfdaa654646aaasdfrrwerqq84461379qqasfdasdfrrwerqq84461376qqasfdasdf";
        Pattern p = Pattern.compile("qq(.*?)qq");
        Matcher m = p.matcher(str);
        ArrayList<String> strs = new ArrayList<String>();
        while (m.find()) {
            strs.add(m.group(1));            
        } 
        for (String s : strs){
            System.out.println(s);
        }        
    }
theUncle
theUncle 请问下放在我这里的话需要怎么匹配才能正确的得到我想要的呢?pattern这个后面的值应该写什么好呢?
3 年多之前 回复

使用split分割,或封装成数组或集合,再遍历取值

replace(" ",","); 这样就可以了’

pattern和matcher正则表达式。。。轻松随意

theUncle
theUncle 不是很懂这个 pattern和matcher 的用法,有没有什么例子呢?我这里想匹配出 VG Name:rootvg这样的值应该怎么去匹配呢?
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问