我是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。 例如:
感谢帮助,如果有人可以帮助我,我是新手。