获取非初始参数从命令提示符处获取java程序中的用户输入

时间:2015-08-29 19:43:39

标签: java command java.util.scanner

我正在编写一个必须通过命令行运行的程序。它将初始输入作为参数(java filename arg arg arg),但随后需要输入更多信息。我尝试使用基本的扫描仪和.nextLine(),但扫描仪实际上并没有拾取字符串,点击输入会将我移到下一行。

我可以使用扫描仪吗?还是我必须使用不同的东西?

编辑:这是我正在使用的代码部分(请注意我也导入了正确的库):

    Scanner in = new Scanner(System.in);
    boolean cont = true;
    while(cont)
    {
        int indx;
        System.out.print("Enter input: ");
        String searched = in.nextLine();
        if(searched.equals("esc"))
        {
            cont = false;
            continue;
        }
        else
            indx = binSearch(sorted,searched);
        if(indx != -1)
            System.out.println("'" + searched + "'" +
                               " was found at index: " +
                               indx);
        else
            System.out.println("'" + searched + "'" +
                               "was not found");
    }
    in.close();

    }

修改2 :将2个字符串的==比较更改为.equals

编辑3 :添加了我正在使用的binSearch方法:

    public static int binSearch(String[] A, String word)
    { 
    int i = 0; int j = A.length; int m;
    while( i < j )
    {
            m = (i + j)/2;//find centerpoint
            if(cSL(word,A[m]))
                    j = m;//move right side up
            else i = m;//move left side up
    }
    if(A[i].equalsIgnoreCase(word)) return i;
    else if(A[j].equalsIgnoreCase(word)) return j;
    else return -1;
    }

编辑4:所以我猜它一定是UNIX,一切都在cmd中工作。

1 个答案:

答案 0 :(得分:0)

您可以将字符串与.equals方法进行比较。这一定是问题所在。试试这个:

string ConString = // my Connection string
string CmdString = string.Empty;

using (SqlConnection con = new SqlConnection(ConString))
{
    CmdString = "SELECT * FROM [dbo].[Client_Info_Detail]";

    SqlCommand cmd = new SqlCommand(CmdString, con);
    SqlDataAdapter sda = new SqlDataAdapter(cmd);

    DataTable dt = new DataTable("Client");
    sda.Fill(dt);

    grdClient.ItemsSource = dt.DefaultView;
}