2016-12-03 11 views
-2

コードでは、T、I、Lの4文字の組み合わせを入力し、それをTILTという単語に変換することができなければなりません。ただし、 - と|を使用してTILTという語を出力する必要があります。 - は、TとIの文字の最上部とLの最下部にあります。他のすべてのために使用されます。 if文とelse文とint line文が必要です。Javaを使って手紙を印刷するには?

これを達成するためのアドバイスはありますか?何か助けて! これは私がこれまで行ってきたことですが、ユーザーが入力した内容を印刷するところまでしか動いていますが、 - と|を使って印刷しません。

import.java.util.Scanner 
public class letters 
{ 
private char letter1, letter2, letter3, letter4; 
public void readIn() 
{ 
    Scanner keyboard = new Scanner(System.in); 
    System.out.println("Enter four letters that consist of any combination of T, I, or L"); 

    letter1 = keyboard.next().charAt(0); 
    letter2 = keyboard.next().charAt(0); 
    letter3 = keyboard.next().charAt(0); 
    letter4 = keyboard.next().charAt(0); 

    System.out.println("You entered the following:" + letter1 +letter2 + letter3 + letter4); 


} 
// This method tracks which line to print out at a given time 
public void printOut() 
{ 
    for (int line = 0; line , 5; line++) 
      drawLine(line); 
    } 

public void drawLine(int Line) 
    { 
    if (line == 0) 
    { 
     if (letter1 == 'T' || letter1 == 'I') 
      System.out.println("-----"); 
     else 
     System.out.println("|"); 
    } 
     else if (line < 4) 
    { 
     if(letter1 == 'L') 
     System.out.println(" | ") 
     } 
     if (line == 4) 

     { 
      if(letter1 == 'T') 
      System.out.println(" | "); 

      else 
      System.out.println("-----"); 
      } 
    } 

答えて

2

この提案はあなたのプログラムには厳密に適合しませんが、私はあなたがそれを適合させることができると確信しています。私はあなたのためにコードを書くことでそれを台無しにしていないことを願っています。

static String[] linesT = { "-----", 
          " | ", 
          " | ", 
          " | ", 
          " | " }; 

static String[] linesI = { "-----", 
          " | ", 
          " | ", 
          " | ", 
          "-----" }; 

static String[] linesL = { "| ", 
          "| ", 
          "| ", 
          "| ", 
          "-----" }; 

private static void printOut(String letters) { 
    for (int line = 0; line < 5; line++) { 
     for (int letter = 0; letter < letters.length(); letter++) { 
      switch (letters.charAt(letter)) { 
       case 'T': 
        System.out.print(linesT[line]); 
        break; 
       case 'I': 
        System.out.print(linesI[line]); 
        break; 
       case 'L': 
        System.out.print(linesL[line]); 
        break; 

       default: 
        throw new IllegalArgumentException("Cannot print letter " + letters.charAt(letter)); 
      } 
      System.out.print(' '); 
     } 
     System.out.println(); 
    } 
} 

私は、引数"TILT"printOut()を呼び出すと、それは印刷します

----- ----- |  ----- 
    |  | |  | 
    |  | |  | 
    |  | |  | 
    | ----- ----- | 

したい場合は、あなたの代わりにスイッチ/ case文を簡単に検索にHashMap<Character, String[]>に文字列配列を置くことができます。

ご不明な点がございましたら、コメントにお尋ねください。

+1

@Khali switch文に慣れていない場合は、 'if(letters.charAt(letter)== 'T'){System.out.print(linesT [line]);と書くことができます。 }} 'else if(letters.charAt(letter)== 'I'){System.out.print(linesI [line]);} } 'など –

+0

@Ole V.V.だから、プロジェクトを作成したときに、プロジェクトを作成しました。そこから実際のコードのメインクラスと別のクラスを含むクラスを作成しましたか?申し訳ありませんが、私はこれにまったく新しいものです。私はできるだけ多くのことを学びたいと思っています。ありがとう! – Khali

+0

デザインに対するあなたの関心は健全なものです。私はあなたが '文字'(これはクラスであるので大文字の 'Letters'でなければなりません)とは異なるクラスで' main'メソッドを持たなければならないことを今だけ見ています。私は本当にあなたのデザインを尊重しませんでした。私は完全なプログラム、メソッドが1つだけで、メソッドが必要とする3つの宣言を必要としなかったので、私は怠け者でした。私は小さなSOのために既に持っているプロジェクトを使用しました(本当に汚い) ) 'とあなたが参照するコードです。貧しい例が私です。 –

関連する問題