【发布时间】:2014-10-22 16:36:57
【问题描述】:
我对 java 非常陌生,例如,我几乎不能编写 20 行基本代码并让它们工作,新级别,我有 2 个问题可能相关,也可能不相关,因为它们来自非常相似的部分我亲自编写的代码。
import java.util.Scanner;
public class StringCW {
public static void main (String [] args) {
String word = "";
while(!(word.equals("stop"))){
Scanner capconversion = new Scanner(System.in);
System.out.println("Enter word:" );
word = capconversion.next();
String lower = word.toLowerCase();
word = lower;
System.out.println("conversion = " + word);
}
System.out.println("ending program");
}
}
}
这是我的第一段代码,它旨在获取任何字符串并将其转换为小写,但是如果我要打印由空格分隔的任何内容,例如:“WEWEFRDWSRGdfgdfg DFGDFGDFG”,只有第一个“单词”将是打印和转换后,我也从 cap 转换中得到内存泄漏,虽然我不明白这意味着什么或如何解决它
我的第二个问题可能也是这样
import java.util.Scanner;
public class splitstring {
private static Scanner capconversion;
public static void main (String [] args) {
String word = "";
while(!(word.equals("stop"))){
capconversion = new Scanner(System.in);
System.out.println("Enter word:" );
word = capconversion.next();
String lower = word.toLowerCase();
String[] parts = lower.split(" ");
parts [0] = "";
parts [1] = "";
parts [2] = "";
parts [3] = "";
parts [4] = "";
System.out.println("conversion = " + lower
parts [0] + parts [1] + parts [2] + parts [3] + parts [4]);
}
System.out.println("ending program");
}
}
这是第二个代码块,旨在执行与前一个代码相同的工作,除了在新行上打印每个“单词”,然后返回输入部分直到输入停止命令
我得到的错误是
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at splitstring.main(splitstring.java:21)
但是我不明白错误出现在哪里
【问题讨论】:
-
什么是
splitstring.java:21?请遵守 Java 命名约定,类应在PascalCase中。 -
我复制粘贴了我收到的错误消息,我正在使用eclipse作为我的编码程序,正如我所说,我对java不太了解,所以我希望能得到你们的帮助
-
它告诉你错误在第21行。第21行是什么?
-
第 21 行是部分 [1] = "";
-
不要每次循环都创建
Scanner。
标签: java arrays while-loop split java.util.scanner