Слова в этом коде должны пересекаться в общей букве и печатать столько раз, сколько слова могут пересекаться друг с другом.Как получить одно из моих слов для печати по вертикали?
У меня есть правильное количество раз, но слова не форматируют правильный путь.
Он должен выглядеть следующим образом:
b
lottery
a
t
b
o
a
lottery
b
o
a
lottery
Но моя печать такой:
b
lotto
a
t
b
lotto
a
t
b
lotto
a
t
Моего код отображается ниже, что не так с моим методом печати, который вызывает это?
public class Assg23
{
public static void main(String[] args)
{
String w1 = args[0];
String w2 = args[1];
int numberOfCrosses = 0;
int pos1=0;
int pos2=0;
for(int i=0; i < w1.length(); i++)
{
for(int j=0; j < w2.length(); j++)
{
if(w1.charAt(i) == w2.charAt(j))
{
numberOfCrosses++;
crossesAt(w1, pos1, w2, pos2);
printCross(w1, pos1, w2, pos2);
}
}
}
if(numberOfCrosses == 0)
{
System.out.println("Words do not cross");
}
}
private static boolean crossesAt(String w1, int pos1, String w2, int pos2)
{
if(w1.charAt(pos1) == w2.charAt(pos2))
{
return true;
}
else
{
return false;
}
}
private static void printCross(String w1, int pos1, String w2, int pos2)
{
for(int i=0; i < w1.length(); i++)
{
for(int j = 0; j < w2.length(); j++)
{
if((j== pos1) && i<w2.length())
{
System.out.println(w2.charAt(i));
}
if((i == pos2) && j<w1.length())
{
System.out.print(w1.charAt(j));
}
else
{
System.out.print(" ");
}
}
}
}
Вы уже сравнения на равенство и, следовательно, не нуждаются в 'crossesAt' вызов метода. –
, когда я вынимаю крестики. Он все равно печатает то же самое. @akhil_mittal – anderkat97