这让我很费解。我正在试图理解如何解决Java无法识别我的“settitle”方法存在于第一个“song”之后的问题。这是一个音乐应用程序。它还有另外两个类。我们将非常感谢所有的帮助。
import java.util.*;
public class MusicApp
{
static Scanner keyboard = new Scanner(System.in);
static Song s1 = new Song();
static Song s2 = new Song();
static Song s3 = new Song();
static Album a1 = new Album();
public static Song song1(Song s1)
{
System.out.println("Song One");
System.out.println("Enter the title of a song: ");
s1.setTitle(keyboard.nextLine());
System.out.println("Enter the artist's name: ");
s1.setArtist(keyboard.nextLine());
System.out.println("Enter the length of the song in minutes: ");
s1.setMinutes(keyboard.nextInt());
a1.add(s1);
return s1;
}
public static Song song2(Song s2)
{
System.out.println("Song Two");
System.out.println("Enter the title of a song: ");
s2.setTitle(keyboard.nextLine());
System.out.println("Enter the artist's name: ");
s2.setArtist(keyboard.nextLine());
System.out.println("Enter the length of the song in minutes: ");
s2.setMinutes(keyboard.nextInt());
a1.add(s2);
return s2;
}
public static Song song3(Song s3)
{
System.out.println("Song Two");
System.out.println("Enter the title of a song: ");
s3.setTitle(keyboard.nextLine());
System.out.println("Enter the artist's name: ");
s3.setArtist(keyboard.nextLine());
System.out.println("Enter the length of the song in minutes: ");
s3.setMinutes(keyboard.nextInt());
a1.add(s3);
return s3;
}
public static void main(String[] args)
{
song1(s1);
System.out.println("");
song2(s2);
System.out.println("");
song3(s3);
System.out.println("Enter the title of a song in the album: ");
Song songInput = a1.getTitle(keyboard.nextLine());
System.out.println(songInput);
System.out.println(a1.toString());
}
}
Song One
Enter the title of a song:
Three Little Birds
Enter the artist's name:
Bob Marley
Enter the length of the song in minutes:
5
Song Two
Enter the title of a song:
Enter the artist's name:
Very Best
Enter the length of the song in minutes:
Ash
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at MusicApp.song2(MusicApp.java:42)
at MusicApp.main(MusicApp.java:64)
编辑:添加歌曲类。
public class Song
{
private String artist = "";
private String title = "";
private int minutes = 0;
public Song()
{
}
public String getArtist()
{
return artist;
}
public void setArtist(String singer)
{
artist = singer;
}
public String getTitle()
{
return title;
}
public void setTitle(String name)
{
title = name;
}
public int getMinutes()
{
return minutes;
}
public void setMinutes (int mins)
{
minutes = mins;
}
public String toString()
{
return getTitle() + " by " + getArtist() + " is " + minutes + " minutes long";
}
}
尝试在每次调用“next int()”之后加上这个
keyboard.nextLine()
基本上,它跳过了一个输入,因为nextInt无法捕获“\n”。你可以在这里看到更好的解释
这里是Java新手,尝试扫描下面表单中的输入: 3 3 3 101 000 101 拜托,有更有经验的人能教我如何解决这个问题吗?我发现一些问题与。nextline()和。nextint()有类似的问题,但不完全是这样。不过,如果真的是复制品,我提前道歉... (如果需要,我会添加更多信息)
这是我程序的主要方法。当调用nextLine()函数时,扫描器解析变量L而不是space时,我遇到了一个问题。不过,nextInt()可以按照预期工作。我的程序在试图用integer.parseint()函数解析空字符串时崩溃了。 第一个输入是指定将要进行的行数的整数,下面的输入是空格分隔的整数。 堆栈跟踪如下:
我试图从用户那里得到2个整数。这是我的代码的相关部分: 起初,它抛出一个,所以我使用了。现在,它只需跳过扫描器并立即调用。
问题内容: 我正在使用嵌套循环从字符串行(从文本文件)中提取数字,如下所示: 问题在于此代码将跳过所有空格,但是我也需要使用这些“空格”。那么可以返回空格还是我需要使用其他东西? 我的文本文件可能包含以下内容: 这些空白行各包含1条,这就是我需要返回的行。 问题答案: 使用扫描仪和方法,您将找到解决方案,因为这将使您能够捕获空白行或空白行。
我有一个类,它创建多个对象,并将它们放入中,如下所示: 我有一个应用程序,它从控制台扫描输入“add”,如果找到,就调用方法,如下所示: 应用程序应该允许用户输入“add”,但在调用方法后,将出现错误“no line found”。 我猜这是因为方法中的没有关闭,然后在需要时重新打开。这是程序的问题吗?如果是,我该如何修复它? 请注意,这个程序还没有完成,因为我将添加一个出售这些股票的销售方法。这
问题内容: 据我所知,在Java中从文件读取基于字符的数据的两种最常见的方法是使用或。我也知道通过使用缓冲区来避免物理磁盘操作来有效地读取文件。我的问题是: 是否执行以及? 为什么你会选择在反之亦然? 问题答案: 用于从流的内容中解析令牌,而只是读取流,并且不执行任何特殊的解析。 实际上,你可以将传递给作为要解析的字符源。