G'day所有,
我有一个控制台项目,用户按下键盘方向键(非数字小键盘)来移动化身.我编码很难检查这些键的按键.在Pascal中,使用"readkey"和代码很容易,例如,#80用于向下按键.但是,我很难理解如何在Java中实现相同的功能,尽管我认为我理解使用System.in和BufferedInputStream.
任何人都可以帮我吗?非常感谢您的想法或提示.
我在一个同名的.java文件中有一个名为ArionFileExtractor的类.
public class ArionFileExtractor {
public String ArionFileExtractor (String fName, String startText, String endText) {
String afExtract = "";
// Extract string from fName into afExtract in code I won't show here
return afExtract;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在另一个.java文件中调用ArionFileExtractor时,如下所示:
String afe = ArionFileExtractor("gibberish.txt", "foo", "/foo");
Run Code Online (Sandbox Code Playgroud)
NetBeans通知我存在不兼容的类型,并且需要java.lang.String.但我编写了ArionFileExtractor来返回标准字符串类型,即java.lang.string.
我想知道,我的ArionFileExtractor构造函数能合法地返回一个字符串吗?
我非常感谢有关我在这里做错的任何提示或指示.
我需要在由几行字符串组成的文本文件中的特定行上找到一个字符串.但是,我找到文本或文件末尾的循环是永久搜索.我知道字符串在文件中.这是我用来查找文本的代码 - 但要注意,如果你在系统上尝试它,即使是一个简单的文本文件,它也会进入一个永恒的循环.
我非常感谢任何提示或指示来解释我在这里做错了什么.
private static void locateText(String locateText, BufferedReader locateBffer) {
boolean unfound = true;
try
{
String line = locateBffer.readLine();
while (unfound)
{
line = locateBffer.readLine();
if ((line.equals(locateText)) || (line == null))
{
unfound = false;
}
}
}
catch(IOException e)
{
System.out.println("I/O error in locateText");
}
}
Run Code Online (Sandbox Code Playgroud)
更新:发现问题 - 它没有在文件的第一行找到匹配项.