java实现管道命令

x33g5p2x  于2021-11-22 转载在 Java  
字(4.7k)|赞(0)|评价(0)|浏览(310)

首先我介绍一下java中System.getenv(String)方法,这个方法是用来打印输出我们电脑的高级系统设置里面的系统变量的,具体是怎样实现我来举例说明,比如我现在需要打印一下我电脑的JAVA_HOME系统变量:

然后再IDEA里这样写:

然后再将他的孪生姊妹: System.getProperty()

System.getProperty()常用的一些输出:

Properties props=System.getProperties(); //系统属性
   System.out.println("Java的运行环境版本:"+props.getProperty("java.version"));
   System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor"));
   System.out.println("Java供应商的URL:"+props.getProperty("java.vendor.url"));
   System.out.println("Java的安装路径:"+props.getProperty("java.home"));
   System.out.println("Java的虚拟机规范版本:"+props.getProperty("java.vm.specification.version"));
   System.out.println("Java的虚拟机规范供应商:"+props.getProperty("java.vm.specification.vendor"));
   System.out.println("Java的虚拟机规范名称:"+props.getProperty("java.vm.specification.name"));
   System.out.println("Java的虚拟机实现版本:"+props.getProperty("java.vm.version"));
   System.out.println("Java的虚拟机实现供应商:"+props.getProperty("java.vm.vendor"));
   System.out.println("Java的虚拟机实现名称:"+props.getProperty("java.vm.name"));
   System.out.println("Java运行时环境规范版本:"+props.getProperty("java.specification.version"));
   System.out.println("Java运行时环境规范供应商:"+props.getProperty("java.specification.vender"));
   System.out.println("Java运行时环境规范名称:"+props.getProperty("java.specification.name"));
   System.out.println("Java的类格式版本号:"+props.getProperty("java.class.version"));
   System.out.println("Java的类路径:"+props.getProperty("java.class.path"));
   System.out.println("加载库时搜索的路径列表:"+props.getProperty("java.library.path"));
   System.out.println("默认的临时文件路径:"+props.getProperty("java.io.tmpdir"));
   System.out.println("一个或多个扩展目录的路径:"+props.getProperty("java.ext.dirs"));
   System.out.println("操作系统的名称:"+props.getProperty("os.name"));
   System.out.println("操作系统的构架:"+props.getProperty("os.arch"));
   System.out.println("操作系统的版本:"+props.getProperty("os.version"));
   System.out.println("文件分隔符:"+props.getProperty("file.separator"));   //在 unix 系统中是"/"
   System.out.println("路径分隔符:"+props.getProperty("path.separator"));   //在 unix 系统中是":"
   System.out.println("行分隔符:"+props.getProperty("line.separator"));   //在 unix 系统中是"/n"
   System.out.println("用户的账户名称:"+props.getProperty("user.name"));
   System.out.println("用户的主目录:"+props.getProperty("user.home"));
   System.out.println("用户的当前工作目录:"+props.getProperty("user.dir"));

举例说明:

第二个小知识点:怎样输出一段字符串中某一个字母出现的个数?:

这里我们会用到一个charAt()方法,这个方法是用来返回某一个字母所对应的下标的,这里我们可以通过判断我们所要寻找的字符是否在字符串中有即可:

charAt:

public class Test {
    public static void main(String args[]) {
        String s = "www.runoob.com";
        char result = s.charAt(6);
        System.out.println(result);
    }
}

以上程序执行结果为:

n

返回字符串个数的方法:

package 任务三.树形菜单;

import java.util.Scanner;

/** * @author ${范涛之} * @Description * @create 2021-11-17 14:10 */
public class CharFound {
    public static void main(String[] args) {

        System.out.println("请输入一段字符串");
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        int count = 0;
        char a ='o';
        for (int i = 0; i <str.length(); i++) {
            char cm = str.charAt(i);
            if (a == cm){
                count++;
            }

        }
        System.out.println("字符"+a+"出现了"+count+"次");

    }
}

运行结果:

结合上面的知识点做题:

首先是用java怎样去实现管道命令:

因为Scanner会读取一整行,所以我们相当于用一行去传入三个参数,这里我就想到了使用split去用空格分割我们输入的字符串然后去对应执行命令:

package 任务三;

import java.util.Scanner;

/** * @author ${范涛之} * @Description * @create 2021-11-18 0:48 */
public class NewTest {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入grep命令");
        String str = scanner.nextLine();
        String[] x = str.split(" ");

        String str1 = x[0];  //这里是指grep

        String str2 = x[1];  //这里指hello

        char s = x[2].charAt(0);  //这里指o

        int count = 0;

        for (int i = 0; i <str2.length(); i++) {
            char cm = str2.charAt(i);
            if (s == cm){
                count++;
            }
        }

        System.out.println("出现了"+count+"次");



        }

    }

运行结果:

其中我们还用到了一个charAt方法用来返回字符串中的下标字符,我们只要charAt(0)这样就可以返回首字符了

所以下一个也就是同理!!不过是分割的更多了一点点而已:

package 任务三;

import java.util.Scanner;

/** * @author ${范涛之} * @Description * @create 2021-11-18 1:28 */
public class Finally {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入管道命令");
        String str = scanner.nextLine();
        String[] x = str.split(" ");

        String str1 = x[0];  //这里是指echo

        String str2 = x[1];  //这里指 ARGUMENT

        String str3 = x[2];  //这里代表:"|" 这个符号
        
        String str4 = x[3]; //这里代表 grep

        char s = x[4].charAt(0);  //这里指A

        int count = 0;

        for (int i = 0; i <str2.length(); i++) {
            char cm = str2.charAt(i);
            if (s == cm){
                count++;
            }
        }

        System.out.println(s+"出现了"+count+"次");

    }
}

运行结果:

看来程序还是思路最重要!!思路一通顺就都通顺了!

相关文章

微信公众号

最新文章

更多