2015-10-18 52 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(); 
    } 
}