我试图检查文本文件是否包含" Circle"或" Square"如果是这样的话,请阅读其余部分。我尝试过使用scan.next()=="Circle"
,但这似乎不起作用。
编辑:数字指的是x和y坐标,它们将被实现到一个类的实例中。在这种情况下,Square和Circle。
文字档案:
Circle 50 60 40 50 50
Square 250 260 45 -50 -50
答案 0 :(得分:0)
如果您正在阅读文本文件,请尝试使用BufferedReader
然后使用readLine然后使用.equals()而不是==
一个例子:
BufferedReader reader = new BufferedReader(new FileReader(myTextFile));
String lineOne = reader.readLine();
if(lineOne.equals("circle"))
{
//do something
}
答案 1 :(得分:0)
在Java中,“==”运算符用于比较2个对象。它检查对象是否引用内存中的相同位置。换句话说,它检查2个对象名称是否基本上是对同一内存位置的引用。 所以你应该使用equals。但在您的情况下,如果一行以圆或方形开头,则必须从给定文件中读取该行。
您是否可以使用以下条件并检查它是否适用于扫描仪本身?
String line = sc.next();
if (line.startsWith("Circle") || line.startsWith("Square")){
//Your logic
}
答案 2 :(得分:0)
试试这个:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class FileReader {
public FileReader() {
Scanner scanner;
List<String> list;
try {
list = new ArrayList<>();
scanner = new Scanner(new File("file.txt"));
while (scanner.hasNextLine()) {
String s = scanner.nextLine();
if (!s.startsWith("Circle") && !s.startsWith("Square")) {
break;
}
System.out.println(s);
list.add(s);
}
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new FileReader();
}
该文件名为file.txt:
Circle 50 60 40 50 50
Square 250 260 45 -50 -50
False 50 60 40 50 50
如果您比较字符串,请始终使用equals
而不是==
。检查this