[
https://issues.apache.org/jira/browse/TEXT-231?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Karnerfors updated TEXT-231:
------------------------------------
Description:
WordUtils.wrap ignores pre-existing occurrences of the "new line string" and
counts them as part of a line, instead of as a wrap.
Example:
{code:java}
public static final String LINE_SEPARATOR = "\n";
void wrap() {
String line = "Alpha"+ LINE_SEPARATOR + "Bravo Charlie Delta Echo Foxtrot";
System.out.println(WordUtils.wrap(line, 13));
} {code}
The default new line string is just newline ("\n"). So in this case I would
expect this to output...
{noformat}
Alpha
Bravo Charlie
Delta Echo
Foxtrot
{noformat}
However, since WordUtils.wrap does not consider the pre-existing newline after
"Alpha" as one of its own wraps, I instead get...
{noformat}
Alpha
Bravo
Charlie Delta
Echo Foxtrot
{noformat}
There is a work-around, but it is not as elegant...
{code:java}
String wrappedLine =
Arrays
.stream(
line.split(LINE_SEPARATOR)
)
.map(
subLine -> WordUtils.wrap(subLine, 13)
)
.collect(
Collectors.joining(LINE_SEPARATOR)
);
System.out.println(wrappedLine);
{code}
Hence, I suggest that WordUtils.wrap should consider matches of "newLineStr" as
a wrap, and any directly following text as the beginning of the next line.
was:
WordUtils.wrap ignores pre-existing occurrences of the "new line string" and
counts them as part of a line, instead of as a wrap.
Example:
{code:java}
public static final String LINE_SEPARATOR = "\n";
void wrap() {
String line = "Alpha"+ LINE_SEPARATOR + "Bravo Charlie Delta Echo Foxtrot";
System.out.println(WordUtils.wrap(line, 13));
} {code}
The default new line string is just newline ("\n"). So in this case I would
expect this to output...
{noformat}
Alpha
Bravo Charlie
Delta Echo
Foxtrot
{noformat}
However, since WordUtils.wrap does not consider the pre-existing newline after
"Alpha" as one of its own wraps, I instead get...
{noformat}
Alpha
Bravo
Charlie Delta
Echo Foxtrot
{noformat}
There is a work-around, but it is not as elegant...
{code:java}
String wrappedLine =
Arrays
.stream(
line.split(LINE_SEPARATOR)
)
.map(
subLine -> WordUtils.wrap(subLine, 13)
)
.collect(
Collectors.joining(LINE_SEPARATOR)
);
System.out.println(wrappedLine);
{code}
Hence, I suggest that WordUtils.wrap should consider matches of "newLineStr" as
a wrap, and any directly following text as the beginning of the next line.
> WordUtils.wrap should react to prexisting "new line string" as a wrap
> ---------------------------------------------------------------------
>
> Key: TEXT-231
> URL: https://issues.apache.org/jira/browse/TEXT-231
> Project: Commons Text
> Issue Type: Improvement
> Affects Versions: 1.10.0
> Reporter: Michael Karnerfors
> Priority: Minor
>
> WordUtils.wrap ignores pre-existing occurrences of the "new line string" and
> counts them as part of a line, instead of as a wrap.
> Example:
> {code:java}
> public static final String LINE_SEPARATOR = "\n";
> void wrap() {
> String line = "Alpha"+ LINE_SEPARATOR + "Bravo Charlie Delta Echo
> Foxtrot";
> System.out.println(WordUtils.wrap(line, 13));
> } {code}
> The default new line string is just newline ("\n"). So in this case I would
> expect this to output...
> {noformat}
> Alpha
> Bravo Charlie
> Delta Echo
> Foxtrot
> {noformat}
> However, since WordUtils.wrap does not consider the pre-existing newline
> after "Alpha" as one of its own wraps, I instead get...
> {noformat}
> Alpha
> Bravo
> Charlie Delta
> Echo Foxtrot
> {noformat}
> There is a work-around, but it is not as elegant...
> {code:java}
> String wrappedLine =
> Arrays
> .stream(
> line.split(LINE_SEPARATOR)
> )
> .map(
> subLine -> WordUtils.wrap(subLine, 13)
> )
> .collect(
> Collectors.joining(LINE_SEPARATOR)
> );
> System.out.println(wrappedLine);
> {code}
> Hence, I suggest that WordUtils.wrap should consider matches of "newLineStr"
> as a wrap, and any directly following text as the beginning of the next line.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)