de.regnis.q.sequence.line.simplifier.QSequenceLineWhiteSpaceReducingSimplifier Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sequence-library Show documentation
Show all versions of sequence-library Show documentation
Textual Diff and Merge Library
/*
* ====================================================================
* Copyright (c) 2000-2008 SyntEvo GmbH, [email protected]
* All rights reserved.
*
* This software is licensed as described in the file SEQUENCE-LICENSE,
* which you should have received as part of this distribution. Use is
* subject to license terms.
* ====================================================================
*/
package de.regnis.q.sequence.line.simplifier;
/**
* @author Marc Strapetz
*/
public class QSequenceLineWhiteSpaceReducingSimplifier implements QSequenceLineSimplifier {
// Static =================================================================
public static String reduceWhiteSpaces(String text) {
final StringBuffer buffer = new StringBuffer();
boolean lastWasWhiteSpace = false;
for (int index = 0; index < text.length(); index++) {
final char ch = text.charAt(index);
if (ch != '\n' && ch != '\r' && Character.isWhitespace(ch)) {
lastWasWhiteSpace = true;
}
else {
if (lastWasWhiteSpace) {
buffer.append(' ');
lastWasWhiteSpace = false;
}
buffer.append(ch);
}
}
if (lastWasWhiteSpace) {
buffer.append(' ');
}
return buffer.toString();
}
// Implemented ============================================================
public byte[] simplify(byte[] bytes) {
return reduceWhiteSpaces(new String(bytes)).getBytes();
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy