java - 有没有办法从不同的方法访问数组?

标签 java arrays

我正在努力解决一个问题,我必须访问在 main 方法下初始化的数组。

我如何在“isLower”方法下访问数组(random[])?

我的错误:

Example3.java:4: error: cannot find symbol
            for(int i = 0;i<random.length;i++){
                            ^
  symbol:   variable numbers
  location: class Example3
Example3.java:5: error: cannot find symbol
                    System.out.print(random[i] + " ");
                                     ^

我的代码:

static void isLower(){
    int freq = 0;

    if(random[i]>='a'&&random[i]<='z'){//if lowercase
        freq++;
        return false;
    }
    else if(random[i]>='A'&&random[i]<='Z'){//if uppercase
        return true;
    }


}

public static void main(String [] args){
    int num;
    char random [] = new char[1000];

    for(int i = 0;i<1000;i++){
        num = (int)(Math.random()*((126-32)+1))+32;
        random[i] = (char)num;

    }

我试图完成的问题的措辞如下:

编写一个Java程序,用1000个可打印字符初始化一个字符数组 ASCII 表中的随机字符。然后你的程序应该处理 用于查找小写值出现频率的数组。您的解决方案应该使用 程序员定义的方法称为 isLower,它接受一个字符,因为它是 参数,如果参数是大写,则返回 true;如果是大写,则返回 false 小写。

最佳答案

在方法中,您不需要再次使用整个数组,因为问题只要求单个字符,您应该做的是将字符作为参数传递,并仅返回一个 boolean 值,每次你有小写字符时。 这应该有效:

static boolean isLower(char character){

    if(character>='a'&&character<='z'){//if lowercase
        return true;
    } else {//if uppercase or any other character different than a letter
        return false;
    }
}

在主方法中 只需调用 isLower 函数,并验证 boolean 结果,即可计算频率,而不是在其他方法中。

根据您的问题描述,这应该可以解决。

关于java - 有没有办法从不同的方法访问数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59651830/

相关文章:

java - 如何在 Java 中对齐表格

java - 如何处理返回对象和处理错误

arrays - 比较两个对象数组时出现难以理解的 Swift 编译器错误

javascript - 我怎样才能使这个函数递归并删除这里的 for in 循环。我通过使用此函数得到 Maark、Maary 等的结果

c - 为 SHA1 摘要数组分配内存

ios - 如何交换swift数组中的元素?

java - 自动增加 SWT Datetime 的日期

java - JDK 9 的 Hibernate 5 问题

java - 非常基础的 Java

javascript - array.map 后的未定义值 - react.js