java - .等于不使用扫描仪

标签 java minecraft bukkit

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

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 左右,这在控制台中是这样显示的。

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

我的变量是如何制作的:

 public static boolean stop = false;

这就是我创建变量的方式,它应该 = false 但停止或更改它。我在我的 java 文件中搜索了可能将其触发为 true 的内容,但没有找到任何内容。

最佳答案

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

scanner.useDelimiter("\\z");

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

以便您的文本与您的.equals检查相匹配。

编辑:

通过编辑,您可以在 if 语句表达式中进行赋值:

if (stop = false) {

替换为

if (stop == false) {

或更好

if (!stop) {

总的来说这个if语句是不必要的,你可以简单地写

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

关于java - .等于不使用扫描仪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14666986/

相关文章:

mysql - SQLite/MySQL 大表与多个小表?

windows - 通过 .bat 在已经打开的 CMD 中插入命令

java - Spigot/Bukkit - 获取箱子库存 - Java

java - IP 正则表达式,带进一步检查

javascript - 如何通过蓝牙发送Android命令?

java - JAXWS 和 session

java - 打印彩色日志消息

java - 在 Minecraft(Bukkit/Spigot)中使用 NMS 更改玩家皮肤

java - Hudson 偶尔会失败 Maven2 构建 - 缺少 webdav

java - 如何知道是否有任何预定的定时器