【问题标题】:Java:compare an input to a char Array using charAtJava:使用 charAt 将输入与 char 数组进行比较
【发布时间】:2015-03-29 10:49:56
【问题描述】:

我想将字符串输入与 char[] 列表进行比较。如果字符串中的一个字母等于 char[] 列表,则计数应该迭代但它总是打印出 0。谢谢!

    char[] List={'a','b','c','d'};

    int count=0;
    for(int i=1;i<List.length-1;i++){
        if(input.charAt(i)==List[i]){
            count++;
        }
    }
    System.out.println(count);

【问题讨论】:

  • 一方面,代码编号总是从0开始,所以i = 0不是i = 1,你不需要从List.length中取1。

标签: java arrays count compare charat


【解决方案1】:

数组索引从 0 开始到 n-1,所以你的循环应该是:

for(int i=0;i<List.length;i++){
    if(input.charAt(i)==List[i]){//assuming you have same number of characters in input as well as List and you want to compare ith element of input with ith element of List
        count++;
    }
}

如果您需要将输入中的元素与列表中的任何字符进行比较,那么您可以执行以下操作:

 if (input.indexOf(List[i], 0) >= 0) {
     count++;
 }    

【讨论】:

  • 在我看来,他想迭代输入,而不是 char 数组。
  • @Matthias 我想他想检查输入中的字符是否有标签中的字符,我已经更新了相同的答案。
  • 正是我想做的+1
【解决方案2】:

您正在跳过List 数组的第一个和最后一个字符,除此之外,您只需将第 i 个输入字符与List 数组中的第 i 个字符进行比较。您需要一个嵌套循环,以便将输入字符串的所有字符与List 数组的所有字符进行比较。

char[] List={'a','b','c','d'};

int count=0;
for(int i=0;i<List.length;i++){
    for (int j=0;j<input.length();j++) {
        if(input.charAt(j)==List[i]){
            count++;
        }
    }
}
System.out.println(count);

【讨论】:

  • 非常感谢!我是 Java 编程新手。
猜你喜欢
  • 1970-01-01
  • 2017-02-26
  • 1970-01-01
  • 2021-02-16
  • 1970-01-01
  • 2019-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多