powershell The'<';运算符保留为将来在Java中使用

powershell The'<';运算符保留为将来在Java中使用,java,algorithm,powershell,Java,Algorithm,Powershell,我已经阅读了很多关于这个问题的答案,但是没有发现关于两个文件之间的比较,实际上这是一本基于BinarySearch的算法的书的样本,下面是源代码 import java.util.Arrays; import edu.princeton.cs.algs4.*; public class prac1_1_23{ public static boolean BinaryLookup(int key, int[] arr) { int low = 0; int high = arr

我已经阅读了很多关于这个问题的答案,但是没有发现关于两个文件之间的比较,实际上这是一本基于BinarySearch的算法的书的样本,下面是源代码

import java.util.Arrays;
import edu.princeton.cs.algs4.*;

public class prac1_1_23{

public static boolean BinaryLookup(int key, int[] arr) {
    int low = 0;
    int high = arr.length - 1;
    while(low <= high) {
        int mid = low + ((high - low) >> 1);
        if(key < arr[mid])
            high = mid - 1;
        else if(key > arr[mid])
            low = mid + 1;
        else
            return true;
    }
    return false;
}

public static void main(String[] args) {
    char symbol = '-';
    int[] whitelist = new In(args[0]).readAllInts();
    Arrays.sort(whitelist);
    while(!StdIn.isEmpty()) {
        int key = StdIn.readInt();
        boolean found = BinaryLookup(key, whitelist);
        if('+' == symbol && !found)
            StdOut.println(key);
        if('-' == symbol && found)
            StdOut.println(key);
    }
}
}
导入java.util.array;
导入教育,普林斯顿,cs,algs4。*;
公共类prac1_1_23{
公共静态布尔二进制lookup(int键,int[]arr){
int低=0;
int高=阵列长度-1;
而(低>1);
if(键arr[mid])
低=中+1;
其他的
返回true;
}
返回false;
}
公共静态void main(字符串[]args){
字符符号='-';
int[]白名单=在(args[0]).readAllings()中新增;
排序(白名单);
而(!StdIn.isEmpty()){
int key=StdIn.readInt();
boolean found=BinaryLookup(键,白名单);
如果('+'==符号&&!找到)
标准输出打印项次(键);
if('-'==符号&&found)
标准输出打印项次(键);
}
}
}
此示例使用了本书作者制作的库,可以通过访问该库,问题是我何时希望通过windows的PowerShell运行此程序,如命令

java prac1_1_23 largeW.txt < largeT.txt
java prac1\u 1\u 23 largeW.txt
我遇到了这样的问题

事实上,我找到了一个运行此代码的解决方案,但在PowerShell上解决它是没有用的,这需要我使用本书作者编写的命令行程序,可以在“algs4.cs.princeton.edu/windows/”网站上下载,并且它需要像

javac-algs4 prac1_1_23.java    //compile command

java-algs4 prac1_1_23 largeW.txt < largeT.txt   //run command
javac-algs4 prac1_1_23.java//compile命令
java-algs4 prac1_1_23 largeW.txt
它确实可以工作,但我想知道我们是否可以利用原始CLI,因为我发现有人可以在Linux操作系统上毫无问题地运行原始代码


非常感谢您的帮助。

这是一个powershell问题,如“中所述。您是否尝试使用
-->操作符作为重定向的前缀?例如:

   cmd /c --% java prac1_1_23 largeW.txt < largeT.txt
cmd/c--%java prac1\u 1\u 23 largeW.txt
上面的命令在您的命令前面加了三个前缀,让我解释一下:


  • cmd
    调用cmd.exe,它知道您所说的
    到底需要什么?您需要一起比较的文件的开关参数?size length…很抱歉让您感到困惑,实际上我想比较文件largeW.txt和文件largeT.txt,如代码所示,largeW.txt通过main的args[0]作为白名单读取,largeT.txt作为while循环中的键通过StdIn.readInt()方法读取,谢谢你的时间,你能给我一个输入和输出的例子吗?数据都是大随机数,比如944443 293674 572153 600579 499569 984875 763178 295754……你可以在的网站上找到,但我只能找到下载这本书所需的所有数据的链接,@default locale为我提供了答案,谢谢你的帮助~好吧,谢谢你,实际上我已经尝试过这种方法,但是我的powershell刚刚损坏,最后我将文件更改为小文件,如tinyW.txt和tinyT.txt,它确实有效,谢谢你的帮助help@LancelotHolmes此外,您还可以将命令
    javaprac1_1_23 largeW.txt
    放入bat文件中,如前所述。顺便问一下,在powershell中运行java而不是cmd有什么特别的原因吗?对不起,我认为powershell比cmd更方便,这给我带来了这样一个问题,不管怎样,您能给我提供这么多有用的信息,真是太好了,再次感谢您!在某些情况下,使用Get Content并将结果管道化到本机命令不起作用,我认为这是因为它最终会弄乱本机程序接收的Unicode编码。谢谢,我已经尝试了两个命令,第二个命令效果很好,是否意味着在cmd中执行?对不起,如果我问了一个愚蠢的问题,我对这一领域还不熟悉。这是一个非常好的问题。我已经更新了我的答案,解释并删除了一个不起作用的答案。这是一个很好的逐字参数用例。你也可以把你的答案贴到。你能给出这样的进一步解释,真是太好了,再次谢谢你
       cmd /c --% java prac1_1_23 largeW.txt < largeT.txt