Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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_Arrays_String - Fatal编程技术网

Java 将字符串与字符串数组进行比较

Java 将字符串与字符串数组进行比较,java,arrays,string,Java,Arrays,String,基本上,我想做的是一个非常简单的登录屏幕来了解swing 我的问题是我目前有一个文件pass.txt,其格式如下: Username = bob,tony,mike Password = pass,pass2,pass3 在我的Java文件中,我使用以下方法获取字符串: String[] user = prop.getProperty("Username").split(","); 现在,我将其与我从JTextField输入的文本进行比较,但是它总是失败,我得到的是: if (input2.

基本上,我想做的是一个非常简单的登录屏幕来了解swing

我的问题是我目前有一个文件
pass.txt
,其格式如下:

Username = bob,tony,mike
Password = pass,pass2,pass3
在我的Java文件中,我使用以下方法获取字符串:

String[] user = prop.getProperty("Username").split(",");
现在,我将其与我从
JTextField
输入的文本进行比较,但是它总是失败,我得到的是:

if (input2.equals(pass) && userin.getText().equals(user))

现在我猜我的问题是我有一个字符串数组,它将它与单个字符串进行比较,现在我要做的是遍历数组,如果其中任何一个匹配,我想让它进行匹配并使用它,如果这是有意义的,有什么办法吗?

您必须搜索用户名表,找到引入用户名的位置,然后检查该位置上的密码是否与用户引入的密码相同。

您必须搜索用户名表,找到引入用户名的位置,然后检查该位置上的密码是否与用户引入的密码相同。

您必须以某种方式在数组中搜索要查找的字符串。有很多方法可以做到这一点,我将概述一种方法

int index = 0;
for (String s : user) {
    if (s.equals(userin.getText()) {
        // the username matches! now check to see if the password at the _same index_ matches
        if (pass[index].eqals(input2.getText()) {
            // correct username and password!
        } else {
            // bad password!
        }
    }
    ++index;
}

我假设您有一个名为
pass
的密码数组,并且索引与
user
数组的索引匹配。(
user[i]
的密码是
pass[i]

您必须以某种方式在数组中搜索要查找的字符串。有很多方法可以做到这一点,我将概述一种方法

int index = 0;
for (String s : user) {
    if (s.equals(userin.getText()) {
        // the username matches! now check to see if the password at the _same index_ matches
        if (pass[index].eqals(input2.getText()) {
            // correct username and password!
        } else {
            // bad password!
        }
    }
    ++index;
}

我假设您有一个名为
pass
的密码数组,并且索引与
user
数组的索引匹配。(
user[i]
的密码是
pass[i]

假设您有一个
pass
数组来匹配您的
user
数组,并且
user
中的每个条目都保证在
pass
中有相应的条目,那么以下解决方案应该有效:

int index = Arrays.asList(user).indexOf(userin.getText());
String password = pass[index];

if (password.equals(input2)) {
    // Successful authentication
} else {
    // Authentication failed
}
  • Arrays.asList(user).indexOf(userin.getText())
    将获取 列表中的用户(在您的示例中,“bob”=>0;“tony”=>1;“mike”=>2)
  • password
    则是同一索引处的密码字符串(在您的示例中, “通过”=>0;“通过2”=>1;“通过3”=>2)
  • 然后if比较与用户关联的密码 (
    password
    )使用对话框中输入的密码 (
    input2

假设您有一个
pass
数组来匹配您的
user
数组,并且
user
中的每个条目都保证在
pass
中有一个对应的条目,那么以下解决方案应该有效:

int index = Arrays.asList(user).indexOf(userin.getText());
String password = pass[index];

if (password.equals(input2)) {
    // Successful authentication
} else {
    // Authentication failed
}
  • Arrays.asList(user).indexOf(userin.getText())
    将获取 列表中的用户(在您的示例中,“bob”=>0;“tony”=>1;“mike”=>2)
  • password
    则是同一索引处的密码字符串(在您的示例中, “通过”=>0;“通过2”=>1;“通过3”=>2)
  • 然后if比较与用户关联的密码 (
    password
    )使用对话框中输入的密码 (
    input2

我认为这可能会对您有所帮助,因为我认为您必须在该阵列中检查每个用户的密码:

for(int i=0;i < user.size();i++){
  if(input2.equals(pass[i]) && userin.getText().equals(user[i])){
   //your code
  }
}
for(int i=0;i
我认为这可能会对您有所帮助,因为我认为您必须在此阵列中使用每个用户的密码进行检查:

for(int i=0;i < user.size();i++){
  if(input2.equals(pass[i]) && userin.getText().equals(user[i])){
   //your code
  }
}
for(int i=0;i<代码> >您应该考虑使用包<代码> java .UTI./COD>中的一个集合/<代码>类,而不是字符串数组。代码>集合有一个<>代码>包含/<代码>,该方法可以检查集合中某个特定项的存在。您应该考虑使用包<代码> java .UTL//COD>中的一个集合/<代码>类,而不是字符串数组。code>Collection
有一个
contains
方法,可以检查集合中是否存在特定项。有关此方法实际执行的操作的一些说明:
Arrays.asList(x)
将数组
x
转换为
java.util.List
,列表中所有元素的显示顺序与它们在数组中的显示顺序相同
indexOf
List
上的一种方法,它返回找到给定元素的第一个索引,如果给定元素不在列表中,则返回
-1
。请注意,如果给定用户名不在
user
数组中,则上述代码实际上会因
ArrayIndexOutOfBoundsException
而崩溃,因为在第2行中,您将使用
-1
索引到
pass
数组中。有关此操作的一些注释:
Arrays.asList(x)
将数组
x
转换为
java.util.List
,列表中的所有元素的显示顺序与它们在数组中的显示顺序相同
indexOf
List
上的一种方法,它返回找到给定元素的第一个索引,如果给定元素不在列表中,则返回
-1
。请注意,如果给定用户名不在
user
数组中,则上述代码实际上会因
ArrayIndexOutOfBoundsException
而崩溃,因为在第2行,您将使用
-1
索引到
pass
数组中。