Java 如何使用此代码将其更改为没有任何数组?
嘿,社区,我想就我正在做的学校作业寻求一些帮助。为了总结作业,我们基本上必须创建一个文本文件,并在一行上写两件事。然后程序要求用户输入,如果该输入与任何行上的第一项匹配,则打印第二项 例如: 行:“brb马上回来” 用户输入:“brb” 输出:“马上回来” 我成功地做到了这一点,这是我的代码。您可以运行它以更清楚地了解它的功能Java 如何使用此代码将其更改为没有任何数组?,java,arrays,filereader,filewriter,Java,Arrays,Filereader,Filewriter,嘿,社区,我想就我正在做的学校作业寻求一些帮助。为了总结作业,我们基本上必须创建一个文本文件,并在一行上写两件事。然后程序要求用户输入,如果该输入与任何行上的第一项匹配,则打印第二项 例如: 行:“brb马上回来” 用户输入:“brb” 输出:“马上回来” 我成功地做到了这一点,这是我的代码。您可以运行它以更清楚地了解它的功能 // The "NetSpeak_raminAmiri" class. import java.io.*; public class NetSpeak_raminAmir
// 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
//NetSpeak\u raminAmiri”类。
导入java.io.*;
公共类NetSpeak_raminAmiri
{
公共静态void main(字符串[]args)
{
发送线();
readLines();
}//主方法
公共静态无效发送行()
{
尝试
{
FileWriter fw=新的FileWriter(“net.txt”);
PrintWriter pw=新的PrintWriter(fw);
pw.println(“brb\tbe右后卫”);
pw.println(“lol\t大声说出”);
pw.println(“g2g\tgot got”);
pw.println(“d8\tdate”);
pw.println(“h8\thate”);
pw.println(“luv\tlove”);
pw.println(“pos\t肩上租金”);
pw.println(“u\tyu”);
pw.println(“sup\t什么事”);
pw.println(“yolo\t你只活一次”);
pw.println(“摇我的头”);
pw.println(“lmao\t把我的屁股放下来”);
pw.println(“ttyl\ttalk to your later”);
pw.println(“idc\ti不在乎”);
pw.println(“idk\ti不知道”);
println(“我爱你”);
pw.println(“bae\tdanish单词表示粪便”);
println(“我的上帝”);
pw.println(“tmi\t太多信息”);
pw.println(“老实说,待定”);
println(“jk\t只是开玩笑”);
pw.println(“ftw\t获胜”);
pw.println(“np\tno问题”);
pw.close();
}
捕获(IOE异常)
{
}
}//发送线方法
公共静态无效读线()
{
尝试
{
FileReader fr=新的FileReader(“speak.txt”);
BufferedReader br=新的BufferedReader(fr);
字符串输入;
弦线;
System.out.println(“您想翻译什么网络语言?”);
input=In.getString();
而((line=br.readLine())!=null)
{
字符串translate[]=line.split(“\t”);
for(int i=0;i
一切都很好,直到我注意到,“注意:不要使用数组”
现在我被卡住了
我需要帮助,弄清楚如何做与我所做的代码相同的事情,但没有数组。有办法吗?您可以使用IndexOf和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;
}
}
您可以使用IndexOf和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;
}
}
使用Map
如HashMap
使用Map
如HashMap