Hatred's Log Place

DON'T PANIC!

Apr 1, 2011 - 1 minute read - Comments - programming

Перенос строки по заданной границе без разбивки слов (word-wrap) в Java

В составе Apache Commons есть чудная библиотечка Lang в которой есть класс WordUtils который и поможет нам решить поставленную задачу, примерно следующим образом:

package test;

import java.io.IOException;

import org.apache.commons.lang.WordUtils;

public class WordWrap
{
  public static void main(String[] args) throws IOException 
  {
    String str = "This is a sentence that we're using to test the wrap method";
    System.out.println("Original String 1:<br/>n" + str);
    System.out.println("<br/>nWrap length of 10:<br/>n" + WordUtils.wrap(str, 10));
    System.out.println("<br/>nWrap length of 20:<br/>n" + WordUtils.wrap(str, 20));
    System.out.println("<br/>nWrap length of 30:<br/>n" + WordUtils.wrap(str, 30));

    String str2 = "This is a sentence that we're using to test the wrap method and hereisaveryveryveryverylongword";
    System.out.println("<br/>nOriginal String 2:<br/>n" + str2);
    System.out.println("<br/>nWrap length of 10, <br/><br/><br/>n newline, wrap long words:<br/>n"
			+ WordUtils.wrap(str2, 10, "<br/><br/>n", true));
    System.out.println("<br/>nWrap length of 20, <br/><br/>n newline, don't wrap long words:<br/>n"
			+ WordUtils.wrap(str2, 20, "<br/>n", false));
  }
}