java

时间:2018-05-18 17:58:16

标签: java arrays

我有一个长度为n的char数组,我不知道它的值。我需要写一个条件来检查我的数组的所有元素是否都是一个接一个等于给定的char 'a'

例如,当n = 4时,我通过执行以下操作将数组转换为字符串:

String str = new String(myArray); 

然后我就像我一样:

if (str.equals("aaaa")) {} 

但我的问题是n的值未知。 我试着这样做:

for (int i = 0; i < n; i++) { 
    if (myArray[i].equals('a')) {
        ??
    }
}

但我不知道要做'??'在if之后,因为我需要等待for循环完成,因为我希望我的数组的所有元素都等于'a'

5 个答案:

答案 0 :(得分:2)

检查所有项目的过程通常如下:

  • 检查单个项目
  • 如果符合条件,请继续
  • 否则,声明匹配失败,并结束循环
  • 如果循环结束而未声明匹配失败,则表示您的匹配成功

就Java而言,声明匹配失败可能意味着将http://www.{name-of-project}.com变量设置为boolean

false

答案 1 :(得分:1)

在Java-8中,您可以使用my_bundle.js来完成。它会减少礼仪代码。您不必担心Stream#allMatchArray Length以及setting the flag

breaking the loop

答案 2 :(得分:0)

怎么样:

const getFilteredVenues = (venues, { sortBy }) => {
  return venues.slice(0).sort((a, b) => {
    if (sortBy === "alfabetical") {
      return a.venue_name.toLowerCase() > b.venue_name.toLowerCase();
    } else {
      return 0;
    }
  });
};

然后你要做的就是检查匹配的布尔值。

答案 3 :(得分:0)

您可以简单地使用正则表达式。例如:

    String s = "aaaaaaaa";
    if(s.matches("[a]*"))
        System.out.println("s only contains a");
    else if(s.matches("[A]*"))
        System.out.println("s only contains A");
    else if(s.matches("[aA]*"))
        System.out.println("s only contains A and a");
    else
        System.out.println("s not match a*");

答案 4 :(得分:0)

试试这个

private static  void n(){

    char[] n = {'a', 'b'};

    String[] myArray = {"a", "a", "a"};

    for(char c : n){
        int i = 0;
        int j = 0;
        for(String s : myArray){
            if((s.equals(String.valueOf(c)))){
                i++;
            }

            if(++j == n.length){

                System.out.println(i + "->" + n.length);

                if(n.length == i){
                    System.out.println("All the elemntes in your array are the same to char array");
                }else{
                    System.out.println("Not the same");
                }
            }
        }
    }
}