.equals不使用扫描仪

时间:2013-02-02 22:00:54

标签: java minecraft bukkit

我知道它正在读取文件,因为我将txt文件的内容打印到控制台但每次尝试.equals时变量都不会变为true / false只是保持真实的任何想法?

public static void readWebPage() {
      URLConnection connection;
      try {
       connection = new URL("https://dl.dropbox.com/u/40562795/List.txt").openConnection();
       @SuppressWarnings("resource")
       Scanner scanner = new Scanner(connection.getInputStream());
       scanner.useDelimiter("\\z");
       String text = scanner.next();
        System.out.println(text);
        if(text.equals("stop")){
            stop = true;
            System.out.println("Successfully stopped.");
        }else{ if(text.equals("-"))
            stop = false;
            System.out.println("Successfully started.");
        }
      } catch (MalformedURLException e) {
       e.printStackTrace();
      } catch (IOException e) {
       e.printStackTrace();
      }
 }

编辑:

现在它能够读取它,但我的变量没有更新为true / false。它保持在真实左右,这在控制台中说。

if(stop = false){
    System.out.println("stop = false.");
}else
if(stop = true){
    System.out.println("stop = true.");
}

我的变量如何制作:

 public static boolean stop = false;

这就是我制作变量的方式,它应该= false但是停止也不要 - 改变它。我在我的java文件中搜索了可能触发它的东西,但找不到任何东西。

1 个答案:

答案 0 :(得分:1)

远程文本文件中的-字符后面有一个尾随空格。您可以使用空格分隔符而不是行终止符分隔符。取代

scanner.useDelimiter("\\z");

scanner.useDelimiter("\\s+");

以便text符合您的.equals支票。

修改

在编辑中,您在if语句表达式中有一个作业:

if (stop = false) {

替换为

if (stop == false) {

或更好

if (!stop) {

总的来说,这个if语句是不必要的,您只需编写

即可
System.out.println("stop = " + stop);