2012-12-04 65 views
-3

我想要獲取在.txt文檔中以ASCII-art形式打印的命令行參數。 但是,我的addChar方法,創建一個字符添加到單詞,將被打印,不做任何事情。我添加了一個System.out.println()來檢查它是否到達該方法的開始位置,但它沒有。Java - 爲什麼沒有這個方法做任何事情

這裏是代碼的相關部分:

import java.io.*; 

public class Test { 
    private static String[] savedArgs; 
    public static String[] getArgs() { 
     return savedArgs; 
    } 

    public static void main(String[] args) { 
     savedArgs = args; 
     AsciiString A = new AsciiString(); 
     print(A.toString(),true,"BESTANDSNAAM.txt"); 
    } 


    public static void print(String string, boolean naarBestand, String bestandsnaam) 
    { 
     if (naarBestand){ 
      try { 
       FileWriter bestand = new FileWriter(bestandsnaam); 
       BufferedWriter out = new BufferedWriter(bestand); 
       out.write(string); 
       out.close(); 
      } 
      catch(IOException exception){ 
       System.out.println("Kan niet wegschrijven naar bestand "+bestandsnaam); 
      } 
     } 
     else { 
      System.out.println(string); 
     } 
    } 
} 

class AsciiString{ 

    String cla[] = Test.getArgs(); 
    String woordString = ""; 
    String cla1 = cla[0]; 
    int x = cla1.length(); 
    char args[] = new char[x]; 
    String woord[] = new String[x]; 

    public AsciiString(){ 
     for(int i=0; i<x; i++){ 
      int j=0; 
      args[j] = cla1.charAt(i); 
      j++; 
     } 

    } 

    public void addChar(AsciiChar letter){ 
     System.out.println("gebeurt dit wel?"); 
     for(int i=0; i<woord.length; i++){ 
      AsciiChar Letter = new AsciiChar(args[i]); 
      woord[i] += Letter; 
     } 
    } 

    public void addCharJoin(AsciiChar letter){ 

    } 

    public String toString(){ 
     System.out.println("en dit?"); 
     for (int i=0; i<woord.length; i++){ 
      woordString += woord[i]; 
      woordString += "\r\n"; 
     } 
     return woordString; 
    } 
} 

class AsciiChar { 
    String letterArray[][] = new String[6][13]; 
    String letterString = ""; 
    public AsciiChar(char letter){ 
     switch(letter){ 
      case 'A': 

這之間是對ASCII藝術字母字符串值(這是一個幾千線長,不感興趣)。我已經添加了最後一行,所以你知道我的意思(letterArray [5] [12]等)。

 letterArray[5][12] = " "; 
       break; 
      default: 
       System.out.println("Input not recognized, please only give capitol letters as input."); 
     } 
    } 
    public String toString(){ 
     for (int i=0; i<letterArray.length; i++){ 
      for (int j=0; j<letterArray[i].length; j++){ 
       letterString += letterArray[i][j]; 
      } 
      letterString += "\r\n"; 
     } 
     return letterString; 
    } 
} 
+0

你在哪裏調用'addChar()'? – NPE

+1

你實際上需要調用你的'addChar'方法來執行它。 –

+1

瞭解如何使用調試器來遍歷自己的代碼。 – mre

回答

1

需要調用addChar()方法上AsciiString's Instance。你從來沒有調用它。我不知道它在哪裏適合你的代碼。

public static void main(String[] args) { 
     savedArgs = args; 
     AsciiString A = new AsciiString(); 
     print(A.toString(),true,"BESTANDSNAAM.txt"); 
     A.addChar(yourargument); 
    } 
相關問題