Reputation: 6470
UPDATE
Seem like when I copy string from this question " AAAAAA"
and replace it. The program works correctly.
So I just do some test by changing back " AAAAAA"
to my previous error string.
then remove all the space and input it manually by typing and it works !?!?.
Here is my full code
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() : "";
}
OLD
I have this String
showStory = " AAAAAA";
these string is retrieve from web and parse it into String format by using library
I want to seperate that with space more than 3 in will replace them with "\n"
I have these tests.
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");
and the results are
\t = false
\n = false
\x0b = false
\r = false
\f = false
= true
= false
\s = false
I don't know why more than one space give me false even though in my String have 8 spaces.
I also change the method from contains
to matches
but all results are false.
Can anyone help me with this?
Thanks.
Upvotes: 0
Views: 161
Reputation: 9913
please check again ... there is no way it wont recognize the 2 spaces in find6
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
and this is the print :
find =false
find1 =false
find2 =false
find3 =false
find4 =false
find5 =true
find6 =true
find7 =false
Upvotes: 3