如何让Java从用户输入中识别空白?

如何让Java从用户输入中识别空白?,java,eclipse,java.util.scanner,whitespace,Java,Eclipse,Java.util.scanner,Whitespace,我试着查找其他类似的问题,但由于我是新手,我不知道如何让Java识别输入中的空白。我从用户输入中获取数据 import java.util.Scanner; import java.util.ArrayList; public class Catalogue { public static Scanner in = new Scanner(System.in); public static ArrayList<Songs> mysongs = new Array

我试着查找其他类似的问题,但由于我是新手,我不知道如何让Java识别输入中的空白。我从用户输入中获取数据

import java.util.Scanner;

import java.util.ArrayList;

public class Catalogue {

    public static Scanner in = new Scanner(System.in);
    public static ArrayList<Songs> mysongs = new ArrayList<Songs>();

    public static void main(String[]args) {

        int option =0;

        do{

            System.out.println("MP3 Catalogue");
            System.out.println("Menu");
            System.out.println("1. Add a song");
            System.out.println("2. List All Songs");
            System.out.println("3. Search Songs");
            System.out.println("4. Delete Songs");
            System.out.println("5. Shuffle Songs");
            System.out.println("");
            System.out.println("Enter an option to choose: ");

            option = in.nextInt();

            switch(option){

            case 1:

                createSong();
                break;

            case 2:
                listSongs();
                break;

            case 3:
                searchSong();
                break;

            }

        } while(option !=0);
    }

    private static void createSong(){

        Songs newsong = new Songs();

        System.out.println("Song Name: ");
        String songname = in.next();

        System.out.println("Song Artist: ");
        String songartist = in.next();

        System.out.println("Duration: ");
        int duration = in.nextInt();

        System.out.println("Song Number: ");
        int songnumber = in.nextInt();

        newsong.setSong(songname, songartist, duration, songnumber);

        mysongs.add(newsong);

    }

    private static void listSongs(){

        for(int i = 0 ; i< mysongs.size() ; i++){

            System.out.println(mysongs.get(i).getSongNumber() + "." + 
                        mysongs.get(i).getSongName() + " by " +
                        mysongs.get(i).getSongArtist() + " " +
                        mysongs.get(i).getDuration() + "mins");
            if(i ==(mysongs.size() - 1)){
                System.out.println();
            }
        }
    }

    private static void searchSong(){

        System.out.println("Enter Song Number: ");
        int songnum = in.nextInt();

        for (int i = 0; i< mysongs.size() ; i++){

            if (mysongs.get(i).getSongNumber() == songnum){

                System.out.println(mysongs.get(i).getSongNumber() + "." + 
                        mysongs.get(i).getSongName() + " by " +
                        mysongs.get(i).getSongArtist() + " " +
                        mysongs.get(i).getDuration() + "mins" + "\n" );
            }
        }

    }
}
import java.util.Scanner;
导入java.util.ArrayList;
公开课目录{
公共静态扫描仪in=新扫描仪(System.in);
public static ArrayList mysongs=new ArrayList();
公共静态void main(字符串[]args){
int选项=0;
做{
系统输出打印(“MP3目录”);
System.out.println(“菜单”);
System.out.println(“1.添加一首歌”);
System.out.println(“2.列出所有歌曲”);
System.out.println(“3.搜索歌曲”);
System.out.println(“4.删除歌曲”);
System.out.println(“5.Shuffle歌曲”);
System.out.println(“”);
System.out.println(“输入要选择的选项:”);
option=in.nextInt();
开关(选件){
案例1:
createSong();
打破
案例2:
listSongs();
打破
案例3:
搜索歌曲();
打破
}
}while(选项!=0);
}
私有静态void createSong(){
歌曲新歌=新歌();
System.out.println(“歌曲名:”);
字符串songname=in.next();
System.out.println(“歌曲艺术家:”);
String songartist=in.next();
System.out.println(“持续时间:”);
int duration=in.nextInt();
System.out.println(“歌曲编号:”);
int songnumber=in.nextInt();
newsong.setSong(歌曲名称、歌曲艺术家、持续时间、歌曲编号);
新增(新闻歌曲);
}
私有静态void listSongs(){
for(int i=0;i
您可以更改分隔符,默认为空白

    Scanner in = new Scanner(System.in);

    public void whateverMethod(){
     in.useDelimiter("\\n");
     //rest of code here
   }

我不知道你到底想做什么,但这可能会有帮助。 读取行,然后将字符串转换为字符串数组

    Scanner in=new Scanner(System.in);
    String input=in.nextLine();
    String []array=input.split(" ");

我认为您需要nextLine()函数。请参阅。扫描仪的一些示例输入是什么?您希望如何解析它?我刚刚添加了整个脚本。。我仍在努力删除和洗牌,但除此之外,我应该在哪里添加nextLine()功能?在代码块中正确格式化代码,使其可读。“如何让Java识别输入中的空白。”在哪里?你输入了什么,得到了什么,想要得到什么,而你没有?很抱歉没有添加我的整个脚本。。如果你不介意的话,我只是添加了我的脚本,如果你想看看我哪里出错了。。。干杯,直到使用分隔符才能满足您的需求。输入.useDelimiter(\\n”);在createSong方法中。我重新创建了你的Song类并测试了它,它对我来说很好,所以不确定如果它不起作用,你想做什么。很抱歉没有添加我的整个脚本。。如果你不介意的话,我只是添加了我的脚本,如果你想看看我哪里出错了。。。干杯