打印二维数组中数组的所有子字符串

时间:2019-03-09 02:02:35

标签: java arrays string multidimensional-array substring

我是Java的初学者,并且是StackOverflow的新手。

我必须编写一个程序,要求用户输入Words,然后打印出一维数组中的所有单词,然后打印出该数组中二维数组中每个单词的所有子字符串(每个单词在单独的一行。)

运行程序时,它会询问用户输入的单词数。然后要求用户输入所有单词所有单词必须等长(**仅矩形2d数组

这是我的代码,它不能正常工作,不会打印2d数组请帮助。

    //Ari
import javax.swing.JOptionPane;
public class twoDArrays
{
    public static void main (String[] args)
    {



        String totalWords = JOptionPane.showInputDialog(null,"How Many Words?");
        int val = Integer.parseInt(totalWords);

        String[] words = new String[val];

        for (int i =0; i<val; i++)
        {
            words[i]= JOptionPane.showInputDialog(null,"Enter Words");
            System.out.print(words[i] + " ");
        }
        System.out.println();

        int len = words[0].length();

        int subs = ((len)*(len+1))/2;

        String table [][] = new String[val][subs];

        for(int i=0; i<val; i++)
        {
            String [] temp = totalSubs(words[i]);
            for (int a = 0; a <subs; a++)
            {  
                table[i][a] = temp[a];
            }
        }
        for (int i= 0; i < table.length; i++)   
        {
            System.out.print(words[i] + " ");
            for (int a = 0; a< subs; a++)
            {
                System.out.print(table[i][a] + " ");
            }
            System.out.println();
        }
    }
    public static String[] totalSubs(String s1)
    {
        int length = s1.length();
        int num = ((length)*(length+1))/2;
        String[] sub = new String[num];
        int loop=0;
        int b =0;
        int pos = 0;
        while(loop < num)
        {
            int a=0;
            for(int i = pos; i < length; i++ )
            {
                if((a+1) < (length +b))
                {
                    sub[loop] = s1.substring(pos, (a + 1 + b));
                    loop++;
                    a++;
                }
            }
            pos++;
            b++;
        }
        return sub;
    }

}

这就是它的工作方式

当您运行程序时,它会询问您想要输入的单词数。 然后要求输入所有单词。 (所有单词长度相同)。 当您输入所有单词时,它会打印出您在一维数组中输入的所有单词。 例如:猫狗爸爸妈妈 然后,程序的第二部分以2维数组(每个单词在不同的行)上打印每个单词的所有Susbtring。 例如:

  • 在t时刻看到猫
  • 做狗的人
  • m mo mom o om m
  • d dad a ad d

感谢帮助,如果有人可以帮助我,我是新手。

0 个答案:

没有答案