返回java字符串而不是返回null
我编写了方法“charCount()”以返回字符串“chc”,但netbean强制我返回null。“returnnull”是否也阻止我在这个方法之外使用“chc”,或者它返回得很好。作为java新手,我感到困惑返回java字符串而不是返回null,java,string,null,return,Java,String,Null,Return,我编写了方法“charCount()”以返回字符串“chc”,但netbean强制我返回null。“returnnull”是否也阻止我在这个方法之外使用“chc”,或者它返回得很好。作为java新手,我感到困惑 // static String chc ; public static String charCount(String [] a){ String chc ; for (int i = 0; i < a.length;
// static String chc ;
public static String charCount(String [] a){
String chc ;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length(); j++) {
char ch = a[i].charAt(j);
int charcout = a[i].length();
chc= Character.toString(ch)+""+Integer.toString(charcout)+" ";
// String chc= ch + "" + charcout + " ";
return chc;
//System.out.print(chc);
}
}
return null; //NETBEAN IS FORCING ME TO WRITE THIS TO AVOID COMPILE TIME ERROR
}
//静态字符串chc;
公共静态字符串charCount(字符串[]a){
字符串chc;
for(int i=0;i
我需要帮助更正此代码以避免返回null。它只是希望您返回一个“默认”值,以防您的循环从未执行过(即:如果数组中没有元素)。您可以返回
null
或String
(或String
的子类,但这些都没有)
您不能在那里使用chc
,因为chc
是在内部循环的范围内定义的。如果您想了解更多信息,您应该查看“变量范围”。Java局部变量必须在使用前初始化。编译器无法确定循环是否会返回值,甚至无法确定循环是否会迭代
但是
你为什么要用一个变量。。。消除它
public static String charCount(String [] a){
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length(); j++) {
char ch = a[i].charAt(j);
int charcout = a[i].length();
return Character.toString(ch)+""+Integer.toString(charcout)+" ";
}
}
return null;
}
公共静态字符串charCount(字符串[]a){
for(int i=0;i
此代码与您的代码等效,但不使用变量
作为旁注,拥有一个循环似乎没有多大意义,因为它在内部循环的第一次迭代中返回。您的逻辑可能有错误。chc在范围外不可用。您可以在for循环之前声明chc。如果您的目标是返回一个字符串,描述数组中每个字符串中每个字符的频率,那么此方法的逻辑将无法实现这一点。一旦您修复了逻辑,在方法末尾使用
返回null
的要求可能就变得无关紧要了。(在循环的中间调用<代码>返回<代码>意味着这两个循环将不会执行一次以上)。我很清楚变量范围,我已经尝试过循环之外的两个地方(现在都被编辑了),但是NETBE仍然需要返回null。我从这里得到的是返回null是可以的。如果数组为空,“return null”处于活动状态。对于编程来说,这是一个很好的教训。我已经编辑了代码,请确认现在它可以返回字符串“chc”。如果没有,那么需要在代码中进行什么更改才能返回“chc”。它总是希望您返回一些内容:要么null
,要么是String
或从String
继承的类型。还要注意,您必须初始化局部变量,这样您所拥有的就不会被编译。您不能写入返回null
,返回chc
或返回“chc”
。