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这样类似的值,
请问有没有什么好的方法来获取这个字符串呢?还望指教!!!
你原来的数据格式是什么样子的?
subString截取可以
或者是 你用 map的 key 和value 的特点来实现 这个可以把他们获取成一个一个的
你这些字符串有些乱,不好获取。我觉得要在文件源把数据格式弄好来才有利于解析,可以使用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);
}
}
使用split分割,或封装成数组或集合,再遍历取值
replace(" ",","); 这样就可以了’
pattern和matcher正则表达式。。。轻松随意