我正在努力解决一个问题,我必须访问在 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/