Java examples for java.lang:String Strip
Intelligently chops a String at a word boundary (whitespace) that occurs at the specified index in the argument or before.
/**//from w w w.j a v a2 s . c o m * Turns an array of bytes into a String representing each byte as an * unsigned hex number. * <p> * Method by Santeri Paavolainen, Helsinki Finland 1996<br> * (c) Santeri Paavolainen, Helsinki Finland 1996<br> * Distributed under LGPL. * * @param bytes * an array of bytes to convert to a hex-string * @return generated hex string */ //package com.java2s; public class Main { public static void main(String[] argv) throws Exception { String string = "java2s.com"; int length = 2; System.out.println(chopAtWord(string, length)); } /** * Intelligently chops a String at a word boundary (whitespace) that occurs * at the specified index in the argument or before. However, if there is a * newline character before <code>length</code>, the String will be * chopped there. If no newline or whitespace is found in * <code>string</code> up to the index <code>length</code>, the String * will chopped at <code>length</code>. * <p> * For example, chopAtWord("This is a nice String", 10) will return "This is * a" which is the first word boundary less than or equal to 10 characters * into the original String. * * @param string * the String to chop. * @param length * the index in <code>string</code> to start looking for a * whitespace boundary at. * @return a substring of <code>string</code> whose length is less than or * equal to <code>length</code>, and that is chopped at * whitespace. */ public static final String chopAtWord(String string, int length) { if (string == null) { return string; } char[] charArray = string.toCharArray(); int sLength = string.length(); if (length < sLength) { sLength = length; } // First check if there is a newline character before length; if so, // chop word there. for (int i = 0; i < sLength - 1; i++) { // Windows if (charArray[i] == '\r' && charArray[i + 1] == '\n') { return string.substring(0, i + 1); } // Unix else if (charArray[i] == '\n') { return string.substring(0, i); } } // Also check boundary case of Unix newline if (charArray[sLength - 1] == '\n') { return string.substring(0, sLength - 1); } // Done checking for newline, now see if the total string is less than // the specified chop point. if (string.length() < length) { return string; } // No newline, so chop at the first whitespace. for (int i = length - 1; i > 0; i--) { if (charArray[i] == ' ') { return string.substring(0, i).trim(); } } // Did not find word boundary so return original String chopped at // specified length. return string.substring(0, length); } }