2012-12-04 3 views
-3

나는이 .txt 문서에 ASCII 예술 인쇄 명령 줄 인수를 얻으려고 해. 그러나 인쇄 할 단어에 문자를 추가하기 위해 만든 addChar 메서드는 아무 것도하지 않습니다. System.out.println()을 추가하여 메소드의 시작 부분에 도달했는지 확인합니다. 그러나 그렇지 않습니다. (천 몇 줄의 길이가 아니라 흥미)에 ASCII 예술 문자의 문자열 값은이 사이자바 - 왜이 방법 나던 아무것도

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': 

: 여기

는 관련 코드의 부분입니다. 마지막 줄을 추가 했으므로 내가 무슨 뜻인지 알 수 있습니다 (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

당신은 AsciiString's InstanceaddChar() 메소드를 호출 할 필요가있다. 당신은 결코 그것을 호출하지 않았습니다. 나는 그것이 당신의 코드에 어디에 들어갈 지 모르겠다.

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