Skip to content

Commit 35a2454

Browse files
committed
Allow multiple spaces when parsing "<HOSE_CODE><SPACE>+<ENERGY>"
1 parent cb87b11 commit 35a2454

File tree

1 file changed

+14
-31
lines changed

1 file changed

+14
-31
lines changed

descriptor/qsaratomic/src/main/java/org/openscience/cdk/qsar/descriptors/atomic/IPAtomicHOSEDescriptor.java

Lines changed: 14 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -330,36 +330,19 @@ private HashMap<String, Double> extractAttributes(BufferedReader input) {
330330
* @return List with String = HOSECode and String = energy
331331
*/
332332
private static List<String> extractInfo(String str) {
333-
334-
StringBuilder idEdited = new StringBuilder();
335-
StringBuilder valEdited = new StringBuilder();
336-
337-
int strlen = str.length();
338-
339-
boolean foundSpace = false;
340-
boolean foundDigit = false;
341-
for (int i = 0; i < strlen; i++) {
342-
if (!foundDigit)
343-
if (Character.isLetter(str.charAt(i))) foundDigit = true;
344-
if (foundDigit) {
345-
if (Character.isWhitespace(str.charAt(i))) {
346-
if (!foundSpace) {
347-
foundSpace = true;
348-
} else
349-
break;
350-
} else {
351-
if (foundSpace) {
352-
valEdited.append(str.charAt(i));
353-
} else {
354-
idEdited.append(str.charAt(i));
355-
}
356-
}
357-
}
358-
}
359-
List<String> objec = new ArrayList<>();
360-
objec.add(idEdited.toString());
361-
objec.add(valEdited.toString());
362-
return objec;
363-
333+
int beg = 0;
334+
int end = 0;
335+
int len = str.length();
336+
List<String> parts = new ArrayList<>();
337+
while (end < len && !Character.isSpaceChar(str.charAt(end)))
338+
end++;
339+
parts.add(str.substring(beg,end));
340+
while (end < len && Character.isSpaceChar(str.charAt(end)))
341+
end++;
342+
beg = end;
343+
while (end < len && !Character.isSpaceChar(str.charAt(end)))
344+
end++;
345+
parts.add(str.substring(beg,end));
346+
return parts;
364347
}
365348
}

0 commit comments

Comments
 (0)