paavochan 2016-11-29 02:19 采纳率: 60%
浏览 1337
已采纳

在java中怎么获取下面一个字符串内容中的部分信息,请指教

下面这个是我的字符串(所有的,不是一行),值是System.out.println()打印出来的

LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
hd5 boot 1 1 1 closed/syncd N/A
hd6 paging 17 17 1 open/syncd N/A
hd8 jfs2log 1 1 1 open/syncd N/A
hd4 jfs2 120 120 1 open/syncd /
hd2 jfs2 20 20 1 open/syncd /usr
hd9var jfs2 8 8 1 open/syncd /var
hd3 jfs2 40 40 1 open/syncd /tmp
hd1 jfs2 40 40 1 open/syncd /home
hd10opt jfs2 40 40 1 open/syncd /opt
hd11admin jfs2 1 1 1 open/syncd /admin

现在我的问题是想要获取得到LV NAME:hd5,LV NAME:hd6 这样的数据格式的值。
请问我要怎么才能得到这样的格式呢?主要是后面的值不好获取,这个用正则表达式吗?如果是用正则表达式,我该怎么去写呢?还望知道的大神不奢指教,我先在这里谢谢了!

  • 写回答

5条回答 默认 最新

  • little_how 2016-11-29 02:39
    关注
     String string = "LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT\n" +
                    "hd5 boot 1 1 1 closed/syncd N/A\n" +
                    "hd6 paging 17 17 1 open/syncd N/A\n" +
                    "hd8 jfs2log 1 1 1 open/syncd N/A\n" +
                    "hd4 jfs2 120 120 1 open/syncd /\n" +
                    "hd2 jfs2 20 20 1 open/syncd /usr\n" +
                    "hd9var jfs2 8 8 1 open/syncd /var\n" +
                    "hd3 jfs2 40 40 1 open/syncd /tmp\n" +
                    "hd1 jfs2 40 40 1 open/syncd /home\n" +
                    "hd10opt jfs2 40 40 1 open/syncd /opt\n" +
                    "hd11admin jfs2 1 1 1 open/syncd /admin";
            string = string.replaceAll("\r|\n", "##");//将换行转换成##
            String name = string.replaceAll("(\\w+\\s+\\w+).+", "$1");//提取出name
            System.out.println(name);//打印name
            Pattern pattern = Pattern.compile("##(\\w+?\\d+)");//匹配换行后的第一列标准字符
            Matcher matcher = pattern.matcher(string);
            StringBuilder sb = new StringBuilder();
            while(matcher.find()) {//逐个查询
                sb.append(name).append(":").append(matcher.group(1)).append(",");
            }
            if(sb.length() > 0) System.out.println(sb.substring(0, sb.length() - 1));
    

    看看是不是你想要的,如果不是,告诉我明确需求吧...

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 preLaunchTask"C/C++: aarch64- apple-darwin22-g++-14 生成活动 文件”已终止,退出代码为-1。
  • ¥18 关于#贝叶斯概率#的问题:这篇文章中利用em算法求出了对数似然值作为概率表参数,然后进行概率表计算,这个概率表是怎样计算的呀
  • ¥20 C#上传XML格式数据
  • ¥15 elementui上传结合oss接口断点续传,现在只差停止上传和继续上传,各大精英看下
  • ¥100 单片机hardfaulr
  • ¥20 手机截图相片分辨率降低一半
  • ¥50 求一段sql语句,遇到小难题了,可以50米解决
  • ¥15 速求,对多种商品的购买力优化问题(用遗传算法、枚举法、粒子群算法、模拟退火算法等方法求解)
  • ¥100 速求!商品购买力最优化问题(用遗传算法求解,给出python代码)
  • ¥15 虚拟机检测,可以是封装好的DLL,可付费