Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使数组从控制台输入中获取句子?_Java_Arrays - Fatal编程技术网

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);