2017-05-01 1 views
0

Hallo StackOverflow-Community, ich wollte um etwas Hilfe mit einem Schulauftrag bitten, an dem ich arbeite. Um die Aufgabe zusammenzufassen, müssen wir im Grunde eine Textdatei erstellen und 2 Dinge in einer Zeile schreiben. Dann fragt das Programm nach einer Benutzereingabe, und wenn diese Eingabe mit den ersten Dingen auf einer der Zeilen übereinstimmt, drucken Sie die zweite Sache.Wie verwende ich diesen Code, um ohne Arrays zu sein?

Beispiel:

die Zeile: "brb gleich zurück" Benutzereingabe: "brb" Ausgabe: "bald wieder"

ich dies gelingt, haben, hier ist mein Code. Sie können es ausführen, um zu sehen, was es klarer macht.

// The "NetSpeak_raminAmiri" class. 
import java.io.*; 
public class NetSpeak_raminAmiri 
{ 
    public static void main (String[] args) 
    { 
     sendLines(); 
     readLines(); 
    } // main method 


    public static void sendLines() 
    { 
     try 
     { 
      FileWriter fw = new FileWriter ("net.txt"); 
      PrintWriter pw = new PrintWriter (fw); 

      pw.println ("brb\tbe right back"); 
      pw.println ("lol\tlaugh out loud"); 
      pw.println ("g2g\tgot got go"); 
      pw.println ("d8\tdate"); 
      pw.println ("h8\thate"); 
      pw.println ("luv\tlove"); 
      pw.println ("pos\tparents over shoulder"); 
      pw.println ("u\tyou"); 
      pw.println ("sup\twhat's up"); 
      pw.println ("yolo\tyou only live once"); 
      pw.println ("smh\tshake my head"); 
      pw.println ("lmao\tlaugh my ass off"); 
      pw.println ("ttyl\ttalk to you later"); 
      pw.println ("idc\ti don't care"); 
      pw.println ("idk\ti don't know"); 
      pw.println ("ily\ti love you"); 
      pw.println ("bae\tdanish word for poop"); 
      pw.println ("omg\toh my god"); 
      pw.println ("tmi\ttoo much information"); 
      pw.println ("tbh\tto be honest"); 
      pw.println ("jk\tjust kidding"); 
      pw.println ("ftw\tfor the win"); 
      pw.println ("np\tno problem"); 

      pw.close(); 
     } 
     catch (IOException e) 
     { 
     } 
    } //sendLines method 


    public static void readLines() 
    { 
     try 
     { 
      FileReader fr = new FileReader ("speak.txt"); 
      BufferedReader br = new BufferedReader (fr); 
      String input; 
      String line; 

      System.out.println ("What net-speak would you like to translate?"); 
      input = In.getString(); 

      while ((line = br.readLine()) != null) 
      { 
       String translate[] = line.split ("\t"); 
       for (int i = 0 ; i < translate.length - 1 ; i++) 
       { 
        if (input.equals (translate [i])) 
        { 
         System.out.println (translate [i + 1]); 
        } 
       } 
      } 
     } 
     catch (IOException e) 
     { 
      e.printStackTrace(); 
     } 
    } //readLines method 
} // NetSpeak_raminAmiri class 

Alles ist gut, bis ich bemerkte, in sehr kleiner Schrift: „Anmerkung: nicht Array verwenden“ Und jetzt stecken ich bin.

Ich brauche Hilfe mit herauszufinden, wie man das Gleiche macht, den Code, den ich gemacht habe, tut, aber ohne Arrays. Gibt es einen Weg?

+0

Verwenden Sie eine 'Map ' wie ein 'HashMap ' –

Antwort

3

können Sie verwenden IndexOf und Substring

 while ((line = br.readLine()) != null) 
     { 
      int p = line.IndexOf('\t'); 
      string key = line.Substring(0, p); 
      if (input.equals(key)) 
      { 
       System.out.println(line.Substring(p+1)); 
       break; 
      } 
     } 
Verwandte Themen