Note that there are some explanatory texts on larger screens.

plurals
  1. POWhy is my matcher failing?
    text
    copied!<p>I am passing a string into my song parser method and it is failing and I can't figure out why. Every thing is returning null or 0.</p> <p>My parser method is </p> <pre><code> public static Song parseSong(String songString){ Map&lt;String, String&gt; songMap = new HashMap&lt;String, String&gt;(); Pattern pattern = Pattern.compile(".*&lt;key&gt;(.+)&lt;/key&gt;&lt;(.+)&gt;(.+)&lt;/.+&gt;.*\n"); Scanner scanner = new Scanner(songString); if(scanner.hasNext(pattern)) { String line = scanner.next(pattern); Matcher matcher = pattern.matcher(line); MatchResult result = matcher.toMatchResult(); songMap.put(result.group(1), result.group(3)); } int count = 0, rating = 0; try{ count = Integer.parseInt(songMap.get("Play Count")); } catch(Exception e) { //bury this for now will handle when rest is working } try{ rating = Integer.parseInt(songMap.get("Rating")); } catch(Exception e) { //bury this for now will handle when rest is working } return new Song(songMap.get("Name"), songMap.get("Artist"), songMap.get("Album"), songMap.get("Genre"), count, rating, songMap.get("Location")); </code></pre> <p>}</p> <pre><code> String songString = "&lt;key&gt;Track ID&lt;/key&gt;&lt;integer&gt;160&lt;/integer&gt;\n"+ "&lt;key&gt;Name&lt;/key&gt;&lt;string&gt;Ashley&lt;/string&gt;\n"+ " &lt;key&gt;Artist&lt;/key&gt;&lt;string&gt;Escape the Fate&lt;/string&gt;\n"+ " &lt;key&gt;Composer&lt;/key&gt;&lt;string&gt;Luca Gusella&lt;/string&gt;\n"+ " &lt;key&gt;Album&lt;/key&gt;&lt;string&gt;This War Is Ours&lt;/string&gt;\n"+ " &lt;key&gt;Genre&lt;/key&gt;&lt;string&gt;Metal&lt;/string&gt;\n"+ "&lt;key&gt;Kind&lt;/key&gt;&lt;string&gt;AAC audio file&lt;/string&gt;\n"+ " &lt;key&gt;Size&lt;/key&gt;&lt;integer&gt;7968219&lt;/integer&gt;\n"+ " &lt;key&gt;Total Time&lt;/key&gt;&lt;integer&gt;246503&lt;/integer&gt;\n"+ " &lt;key&gt;Track Number&lt;/key&gt;&lt;integer&gt;17&lt;/integer&gt;\n"+ " &lt;key&gt;Year&lt;/key&gt;&lt;integer&gt;2005&lt;/integer&gt;\n"+ " &lt;key&gt;Date Modified&lt;/key&gt;&lt;date&gt;2009-07-27T01:17:29Z&lt;/date&gt;\n"+ " &lt;key&gt;Date Added&lt;/key&gt;&lt;date&gt;2009-07-27T01:17:00Z&lt;/date&gt;\n"+ "&lt;key&gt;Play Count&lt;/key&gt;&lt;integer&gt;150&lt;/integer&gt;\n"+ " &lt;key&gt;Bit Rate&lt;/key&gt;&lt;integer&gt;256&lt;/integer&gt;\n"+ " &lt;key&gt;Sample Rate&lt;/key&gt;&lt;integer&gt;44100&lt;/integer&gt;\n"+ " &lt;key&gt;Comments&lt;/key&gt;&lt;string&gt;\"Amanda\" performed by Aisha Duo from the CD Quiet Songs, courtesy of Obliq Sound. Written by Luca Gusella, published by Editions ObliqMusic (GEMA). All Rights Reserved. Used by Permission. &lt;/string&gt;\n"+ " &lt;key&gt;Skip Count&lt;/key&gt;&lt;integer&gt;1&lt;/integer&gt;\n"+ " &lt;key&gt;Skip Date&lt;/key&gt;&lt;date&gt;2009-07-27T01:46:32Z&lt;/date&gt;\n"+ " &lt;key&gt;Artwork Count&lt;/key&gt;&lt;integer&gt;1&lt;/integer&gt;\n"+ " &lt;key&gt;Persistent ID&lt;/key&gt;&lt;string&gt;A4D6F35FE9F41B58&lt;/string&gt;\n"+ " &lt;key&gt;Track Type&lt;/key&gt;&lt;string&gt;File&lt;/string&gt;\n"+ " &lt;key&gt;Location&lt;/key&gt;&lt;string&gt;file://localhost/C:/Documents%20and%20Settings/MB24244/Desktop/music/07%20Knees.m4a&lt;/string&gt;\n"+ "&lt;key&gt;File Folder Count&lt;/key&gt;&lt;integer&gt;4&lt;/integer&gt;\n"+ "afgjdhfshsgsughghanoise\n"+ "&lt;key&gt;Library Folder Count&lt;/key&gt;&lt;integer&gt;1&lt;/integer&gt;\n"+ "&lt;key&gt;Rating&lt;/key&gt;&lt;integer&gt;100&lt;/integer&gt;"; </code></pre> <p>Can anyone help explain what is wrong with my approach and why the groups aren't working (which is what appears to be the problem)</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload