【发布时间】:2015-04-04 09:42:23
【问题描述】:
这是我的第一个问题,感谢您的帮助! (请原谅我犯的任何语法错误,我还在学习英语)
我大约在 2-3 周前开始研究这种 Java 语言,所以这个问题对你来说可能很容易,但我不明白我的问题。我相信我在代码的某个地方犯了一个小错误,浪费了很多时间思考和研究在线论坛。 (也许研究不是没用,但我仍然无法独自解决这个问题。)/我正在使用 Eclipse/
我的程序有 4 个子程序:
- public static void main():这是调用其他 3 个的地方。该程序的目的是询问用户一个有效的文件名,如果存在,程序会读取它并逐行计算文件中的字符、数字等。
- static void shortAnalyze():用户可以在短分析和长分析之间做出选择,这将只显示文本中的总字符数、所有数字、行数。
- static void detailAnalyze():这与上一个非常相似,除了显示更多细节,如特殊字符数、最长单词、最常用字母、元音和辅音、大写字母数量等。(并可能创建一个新的空文本文件并制作日志)
- static void analyzeText():这是唯一的计算子程序,其他的功能只是写出信息。基本上,shortAnalyze() 和 detailAnalyze() 这 2 个子程序是组合在一起的“数学方程”。
当前代码尚未完成,但我可以运行它而不会出错。我还使用了一个名为 TextIO 的 Java 类,我发现它比 Scanner 更易于使用。
这是我的实际问题开始的地方:
static void analyzeText() {
String line;
char currChar = ' ';
int nAll = 0; // nLetters + nNumbers + nOther +nEmpty
int nCharacters = 0; // nLetters + nNumbers + nOther
int nEmpty = 0; // nEmpty
int nOther = 0; // nOther
int nNumbers = 0; // nNumbers
int nLetters = 0; // nLetters
int[] uniqueChar = new int[2048];
boolean readingFile = true; // it is true, because analyzeText can be called only if fileName is valid
while(readingFile){
try {
line = TextIO.getln();
for (int i=0; i < line.length(); i++ ){
currChar = line.charAt(i);
if (currChar == ' '){
nEmpty++;
nAll++;
}
} //end of for
} //end of try
catch (IllegalArgumentException end_of_file) {
break;
}
} //end of analyzeText
} //end of readingFile
(请注意有很多无用无用的东西和代码)
这是我的子程序:
static void shortAnalyze(){
System.out.println();
}
我知道(或者我完全错了)void 不能返回任何值。 我仍然想要类似的东西:
static void shortAnalyze(){
System.out.println(analyzeText.nAll);
}
或
static void shortAnalyze(){
System.out.println(nAll);
}
所以我想将一个变量从 void analyzeText() 调用到另一个 void,称为 shortAnalyze()。 你认为有可能吗?你对我有什么建议、建议吗?
【问题讨论】:
-
如果您想在其中使用,请在您的 shortAnalyze 方法中添加一个参数。
-
您好 ControlAltDel,感谢您的回答。对不起,我有点困惑。如果我在我的方法中添加了一个参数,它将不再是一个空洞吗?这意味着我需要返回一个值,但我只想写出'nAll',我不想更改它的值,将其返回并在其他地方使用。我很惭愧,但我不理解你,对不起。
标签: java eclipse parameters void subroutine