Java 无法检测多个空间?

Java 无法检测多个空间?,java,string,Java,String,更新 好像当我从这个问题中复制字符串“aaaaa”并替换它时。程序运行正常 因此,我只是通过将“aaaaa”更改回以前的错误字符串来进行一些测试。 然后删除所有空格,通过键入手动输入,它就可以工作了 这是我的全部代码 public static void main(String[] args) { URL url; InputStream is = null; try { url = new URL( "http

更新

好像当我从这个问题中复制字符串
“aaaaa”
并替换它时。程序运行正常

因此,我只是通过将
“aaaaa”
更改回以前的错误字符串来进行一些测试。 然后删除所有空格,通过键入手动输入,它就可以工作了

这是我的全部代码

public static void main(String[] args) {
    URL url;
    InputStream is = null;

    try {
        url = new URL(
                "http://writer.dek-d.com/nattione/story/viewlongc.php?id=466201&chapter=966");

        is = url.openStream(); // throws an IOException
        String result = convertStreamToString(is);
        createFictionFiles(result);

    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            is.close();
        } catch (IOException e) {
            // nothing to see here
        }
    }
}

public static void createFictionFiles(String html) {
    Document doc = Jsoup.parse(html);
    Element title = doc.select("title").first();
    Element table = doc.select("#story_body").first();
    
    String showTitle = "";
    String showStory = "";
    BufferedWriter bw;
    try {
        showTitle = new String(title.text());
        showStory = new String(table.text());
        //showStory = "       AAAAAA"; these spaces I copy it from log in eclipse. It is the spaces that come from web
        boolean find = showStory.contains("\\t");
        boolean find1 = showStory.contains("\\n");
        boolean find2 = showStory.contains("\\x0b");
        boolean find3 = showStory.contains("\\r");
        boolean find4 = showStory.contains("\\f");
        boolean find5 = showStory.contains(" ");
        boolean find6 = showStory.contains("  ");
        boolean find7 = showStory.matches("\\s");
        System.out.println("\\t = " + find);
        System.out.println("\\n = " + find1);
        System.out.println("\\x0b = " + find2);
        System.out.println("\\r = " + find3);
        System.out.println("\\f = " + find4);
        System.out.println(" = " + find5);
        System.out.println("  = " + find6);
        System.out.println("\\s = " + find7);

        File file = new File("D:/" + "test"
                + ".txt");
        
        if (!file.exists()) {
            file.createNewFile();
        }

        FileWriter fw = new FileWriter(file.getAbsoluteFile());
        bw = new BufferedWriter(fw);
        bw.write(showStory);
        bw.close();

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    
}

public static String convertStreamToString(InputStream is) {
    Scanner s = new Scanner(is, "TIS-620").useDelimiter("\\A");
    return s.hasNext() ? s.next() : "";
}
旧的

我有这根绳子

showStory = "       AAAAAA";
从web检索这些字符串,并使用

我想将空间大于3英寸的部分分开,并将它们替换为
“\n”

我有这些测试

boolean find = showStory.contains("\\t");
boolean find1 = showStory.contains("\\n");
boolean find2 = showStory.contains("\\x0b");
boolean find3 = showStory.contains("\\r");
boolean find4 = showStory.contains("\\f");
boolean find5 = showStory.contains(" ");
boolean find6 = showStory.contains("  ");
boolean find7 = showStory.contains("\\s");
结果是

\t = false
\n = false
\x0b = false
\r = false
\f = false
 = true
  = false
\s = false
我不知道为什么不止一个空格会给我false,即使我的字符串中有8个空格。 我还将方法从
contains
更改为
matches
,但所有结果均为false

有人能帮我吗


谢谢。

请再次检查。。。它无法识别find6中的2个空格

 String showStory = "       AAAAAA";

 boolean find = showStory.contains("\\t");
 boolean find1 = showStory.contains("\\n");
 boolean find2 = showStory.contains("\\x0b");
 boolean find3 = showStory.contains("\\r");
 boolean find4 = showStory.contains("\\f");
 boolean find5 = showStory.contains(" ");
 boolean find6 = showStory.contains("  ");
 boolean find7 = showStory.contains("\\s");

 System.out.println("find ="+find);
 System.out.println("find1 ="+find1);
 System.out.println("find2 ="+find2);
 System.out.println("find3 ="+find3);
 System.out.println("find4 ="+find4);
 System.out.println("find5 ="+find5);
 System.out.println("find6 ="+find6);
 System.out.println("find7 ="+find7);


  }//end of main
这是印刷品:

find =false
find1 =false
find2 =false
find3 =false
find4 =false
find5 =true
find6 =true
find7 =false

请再次检查。。。它无法识别find6中的2个空格

 String showStory = "       AAAAAA";

 boolean find = showStory.contains("\\t");
 boolean find1 = showStory.contains("\\n");
 boolean find2 = showStory.contains("\\x0b");
 boolean find3 = showStory.contains("\\r");
 boolean find4 = showStory.contains("\\f");
 boolean find5 = showStory.contains(" ");
 boolean find6 = showStory.contains("  ");
 boolean find7 = showStory.contains("\\s");

 System.out.println("find ="+find);
 System.out.println("find1 ="+find1);
 System.out.println("find2 ="+find2);
 System.out.println("find3 ="+find3);
 System.out.println("find4 ="+find4);
 System.out.println("find5 ="+find5);
 System.out.println("find6 ="+find6);
 System.out.println("find7 ="+find7);


  }//end of main
这是印刷品:

find =false
find1 =false
find2 =false
find3 =false
find4 =false
find5 =true
find6 =true
find7 =false

你的密码。我遗漏了什么?你真正想要实现的是什么?我用完全相同的输入编写了一个小程序,并收到了长度为8的所有空格的
true
。这一定是因为当你从web收到它时,它只返回一个“”我猜1
.contains
不接受正则表达式。2.
.matches
尝试匹配整个字符串,而不是部分匹配。您的代码。我遗漏了什么?你真正想要实现的是什么?我用完全相同的输入编写了一个小程序,并收到了长度为8的所有空格的
true
。这一定是因为当你从web收到它时,它只返回一个“”我猜1
.contains
不接受正则表达式。2.
.matches
尝试匹配整个字符串,而不是部分匹配。嗯,当我从该网站复制您的字符串时,它工作正常。请看我的更新。嗯,当我从这个网站复制你的字符串时,它工作正常。请看我的更新。