Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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 如何从命令行获取分数?_Java_Command Line_Fractions_Slash - Fatal编程技术网

Java 如何从命令行获取分数?

Java 如何从命令行获取分数?,java,command-line,fractions,slash,Java,Command Line,Fractions,Slash,我想用命令行得到两个分数。 比如javafraction.java2/51/9 但是我不知道怎么读斜杠 有没有办法从命令行读取分数 公共静态void main(字符串[]args){ java分数2/51/9表示args[0]=“2/5”和args[1]=“1/9” 所以你需要从每个参数中提取分子,斜杠和分母,就像这个例子 String numerator = args[0].substring(0,arg1.indexOf('/')); String slash = args[

我想用命令行得到两个分数。 比如javafraction.java2/51/9

但是我不知道怎么读斜杠

有没有办法从命令行读取分数

公共静态void main(字符串[]args){


java分数2/51/9
表示args[0]=“2/5”和args[1]=“1/9” 所以你需要从每个参数中提取分子,斜杠和分母,就像这个例子

    String numerator = args[0].substring(0,arg1.indexOf('/'));
    String slash = args[0].charAt(arg1.indexOf('/'));
    String denominator = args[0].substring(arg1.indexOf('/')+1,arg1.length());

每个参数都被视为单个字符串,因此索引将是整个分数 e、 g

for(int i=0;i

注意
ArrayIndexOutOfBounds
如果参数中没有“/”等,您的命令行shell几乎肯定没有内置的分数支持。因此
argv[1]
将是“2/5”,而
argv[2]
将是“1/9”。您可能需要定义一种方法以斜杠拆分这些数字,并将第一部分指定为分子,第二部分指定为分母


拆分字符串有无数种方法--
string.split()
是一个很好的起点。这将为每个分数提供一个由两个字符串组成的数组(希望如此)。然后需要使用例如
Integer.parseInt()将分子和分母转换为数字

看来其他一些贡献者很好心地提供了代码,让您没有任何工作要做;)
    String numerator = args[0].substring(0,arg1.indexOf('/'));
    String slash = args[0].charAt(arg1.indexOf('/'));
    String denominator = args[0].substring(arg1.indexOf('/')+1,arg1.length());
for (int i = 0; i < args.length; i++) {
    String fraction = args[i];  //Would be equal to "2/5" for the first argument etc
    String parts = fraction.split("/");
    int num = Integer.parseInt(parts[0]);
    int denom = Integer.parseInt(parts[1]);
}