2015-10-18 3 views
0

Я пытаюсь получить два слова для печати, перечеркнутые по их общей букве. Я получил второе слово для печати по вертикали, но мое первое слово не будет печататься там, где оно должно пересекать второе слово.Как печатать скрещенные слова, используя цикл for?

Он печатает, как так:

lotteryb 
lotteryo 
lotterya 
lotteryt 
lotteryb 
lotteryo 
lotterya 
lotteryt 
lotteryb 
lotteryo 
lotterya 
lotteryt 

Это то, что он должен выглядеть следующим образом:

b 
lottery 
a 
t 

    b 
    o 
    a 
lottery 

    b 
    o 
    a 
lottery 

Вот мой код, любая помощь будет здорово!

public class Assg2 
{ 
    public static void main(String[] args) 
    { 

      String w1 = args[0]; 
      String w2 = args[1]; 

      int numberOfCrosses = 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++; 

         for(char ch : w2.toCharArray()) 
         { 
         System.out.print(w1); 
         System.out.println(ch); 
         } 
        } 
       } 
      } 

     if(numberOfCrosses == 0) 
     { 
      System.out.println("Words do not cross "); 
     } 


    } 


    private static boolean crossesAt(String w1, int pos1, String w2, int pos2) 
    { 
     for(pos1 = 0; pos1 < w1.length(); pos1++) 
     { 
      for(pos2 = 0; pos2 < w2.length(); pos2++) 
      { 
       if(w1.charAt(pos1) == w2.charAt(pos2)) 
       { 
        return true; 
       } 
       else 
       { 
        return false; 
       } 
      } 
     } 
    return true; } 



} 
+0

Не могли бы вы привести пример ввода и ** ожидаемый выход **? Это поможет понять, что вам нужно. – ESala

ответ

0

Вы печатаете первое слово и символ во втором слове, как только найдете подходящий символ. Попробуйте следующее

public class Assg2{ 
    public static void main(String[] args) 
    { 
     String w1 = args[0]; 
     String w2 = args[1]; 

     int numberOfCrosses = 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++; 
        printWords(w1,w2,i,j); 
       } 
      } 
     } 
     if(numberOfCrosses == 0) 
     { 
      System.out.println("Words do not cross "); 
     } 
    } 

    private static void printWords(String w1, String w2, int index1, int index2) { 
     for(int i=0;i<index2;i++){ 
      for(int j=0;j<index1;j++) { 
       System.out.print(" "); 
      } 
      System.out.println(w2.charAt(i)); 
     } 
     System.out.println(w1); 
     for(int i=index2+1;i<w2.length();i++){ 
      for(int j=0;j<index1;j++) { 
       System.out.print(" "); 
      } 
      System.out.println(w2.charAt(i)); 
     } 
     System.out.println(); 
    } 
} 
Смежные вопросы