我有一个编程任务,其中一部分要求我创建从用户读取一行的代码并删除该行中的所有空格.该行可以包含一个或多个单词.
我试图用这个程序做的是让它分析每个字符,直到它找到一个空格,然后将该子字符串保存为第一个标记.然后再次循环,直到它不再有令牌或行尾.
我在尝试编译时继续这样做:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.charAt(String.java:694)
at trim.main(trim.java:23)
Run Code Online (Sandbox Code Playgroud)
这是代码
import java.util.Scanner ;
import java.lang.Character;
import java.lang.String ;
public class trim
{
public static void main (String[]args)
{
String a ;
String b ;
String c ;
char aChar ;
int i = 0 ;
Scanner scan = new Scanner(System.in);
a = scan.nextLine();
a =a.trim() ;
for ( ; i >= 0 ; i++ )
{
aChar = a.charAt(i) ;
if …Run Code Online (Sandbox Code Playgroud) 由于某种原因,我输入任何东西,我继续得到空行我试图制作一个程序,读取输入,删除所有不必要的空格,但每个单词之间的空格.然后打印出所有的线条.
不使用任何哨兵停止.
import java.util.Scanner ;
import java.lang.Character;
import java.lang.String ;
public class trim
{
public static void main (String[]args)
{
String SongName = " " ;
String Song = " " ;
int i = 0 ;
int count = 0 ;
Scanner scan = new Scanner(System.in);
while(scan.hasNextLine())
{
count++;
scan.nextLine();
}
for ( ; i < count ; i ++)
{
if (scan.hasNext())
{
SongName =scan.nextLine() ;
SongName = SongName.trim() ;
SongName = SongName.replaceAll("\\s+"," ");
if (Song== " " …Run Code Online (Sandbox Code Playgroud)