Java 如何使数组从控制台输入中获取句子?
下面是我一直在编写的一小段代码。我是新手,但我遇到了一个似乎无法克服的小障碍。以下是我目前的代码:Java 如何使数组从控制台输入中获取句子?,java,arrays,Java,Arrays,下面是我一直在编写的一小段代码。我是新手,但我遇到了一个似乎无法克服的小障碍。以下是我目前的代码: import java.util.Scanner; 公开课问题5 { 公共静态void main(字符串参数[]) { int m,n,i,j; 扫描仪sc=新的扫描仪(System.in); m=100; n=6; int数组[][]=新的int[m][n]; System.out.println(“输入数组元素,从歌曲歌词的前两行开始,歌曲的音乐键,每分钟的节拍,艺术家和年份:”); 对于(
import java.util.Scanner;
公开课问题5
{
公共静态void main(字符串参数[])
{
int m,n,i,j;
扫描仪sc=新的扫描仪(System.in);
m=100;
n=6;
int数组[][]=新的int[m][n];
System.out.println(“输入数组元素,从歌曲歌词的前两行开始,歌曲的音乐键,每分钟的节拍,艺术家和年份:”);
对于(i=0;i
当执行我的代码时,它似乎只接受整数的输入,但正如我的标题所示,我正在寻求将每个输入表示为一个后跟逗号的句子,然后是以下信息,但与System.out.println类似(“输入数组元素,从歌曲歌词的前两行开始,歌曲的音乐键,每分钟的节拍,艺术家和发布年份:”);建议,考虑到每一行都包含这些值 诚然,正如你所见,数组会相当大,所以我用较短的术语测试了它,比如10x2或5x5,它的功能与我想象的一样,但我只需要能够输入句子。因此,我在理论上实践代码在更大范围内工作的原则,我相信除非我在这里得到纠正,否则应该如此 提前谢谢你。我的旅程很顺利 p、 s:我知道这可能是一个新问题,尽管我似乎在任何地方都找不到关于我的代码的答案。我也为此提前道歉 编辑:根据要求,下面是一个将m值更改为1,n值更改为6的示例 我设想的是,我将输入,比如:按顺序以粗体列出的信息:
请输入歌词第一行、第二行、艺术家、发行年份、节拍、键: 这是抒情的第一行 这是抒情的第二行 艺术家 2021年 十, 电子束 您的曲目输入为: 这是抒情诗第一行,这是抒情诗第二行,艺术家,2021,10,Eb
这样节目就结束了,谢谢
我的代码的主要目的是让一个数组容纳100个曲目,存储信息尝试使用
sc.nextLine()
取而代之。根据您的需要,Scanner
类可以使用许多不同的方法。下面是一个例子。在您的代码中,变量数组
是int
的二维数组,但示例输入的一部分是字符串
。在java中,字符串
不是t一个int
。如果希望array
包含String
或int
元素,则需要将array
的类型更改为
然后您需要调用类的相应方法。例如,对于阅读一行文本,有一个方法
这是我重写的课堂问题5
。代码后的笔记
import java.util.Scanner;
公开课问题5{
公共静态void main(字符串参数[]){
int m,n,i,j;
扫描仪sc=新的扫描仪(System.in);
m=1;
n=6;
对象数组[][]=新对象[m][n];
System.out.println(“输入数组的元素,从前两行开始”+
歌曲的歌词、歌曲的音乐键、每分钟的节拍、+
“艺术家与年度现实:”;
对于(i=0;i
二维数组可以看作是一个包含行和列的表,因此根据上面的代码,array
包含一行和六列,其中每列包含预定义的值。第一列包含歌曲的第一行。第二列包含歌曲的第二行,依此类推–根据y我们的要求如您的问题中所述。因此,在接受用户的数据时,不需要内部for
循环
请注意,在调用方法nextInt
后,如果调用方法nextLine
,由于类扫描仪的工作方式,您将无法获得正确的输入。有关详细信息,请参阅此SO问题
还要注意,上面的代码用于将int
转换为
以下是上述代码的示例运行:
输入数组元素,从歌曲歌词的前两行开始,输入歌曲的音乐键、每分钟的节拍、艺术家和年份:
这是抒情的第一行
这是抒情的第二行
艺术家
2021
10
电子束
您的跟踪输入是:
这是抒情诗第一行这是抒情诗第二行艺术家2021 10 Eb
您试图在整数数组中获取字符串输入,但这不起作用。因为您有多个S
import java.util.Scanner;
public class Question5
{
public static void main(String args[])
{
int m, n, i, j;
Scanner sc=new Scanner(System.in);
m = 100;
n = 6;
int array[][] = new int[m][n];
System.out.println("Enter the elements of the array, beginning with the first two lines of a song's lyrics, musical key for the song, beats per minute, the artist and the year realeased: ");
for (i = 0; i < m; i++)
for (j = 0; j < n; j++)
array[i][j] = sc.nextInt();
System.out.println("Yours track inputs were: ");
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
System.out.print(array[i][j] + " ");
System.out.println();
}
}
}
class Question5{
String lineone, linetwo, Artist,Key;
int ReleaseYear, Beats;
public Question5(String lineone, String linetwo, String Artist,String Key,int
ReleaseYear,int Beats){
this.lineone=lineone;
this.linetwo=linetwo;
this.Artist=Artist;
this.Key=Key;
this.ReleaseYear=ReleaseYear;
this.Beats=Beats;
}
public static void main (String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("Enter size");
int size = sc.nextInt();
Question5[] c = new Question5[size];
for(int i=0;i<size;i++){
/*Write your code here to take inputs from user and save in variables*/
c[i]= new Question5(/*Pass the variables here according to order mentioned in constructor*/);
}
c[0] = new Question5("One","Two","Artist","Key",2017,15);