如何在java中对齐换行符?

如何在java中对齐换行符?,java,android,Java,Android,有没有办法对齐很长的文本 例如,此代码的示例: System.out.println("\tHi this is a very long string to test the automated newline but I want to have the newline to be tab indented too."); 而不是在下面 Hi this is a very long string to test the automated newline but I want to

有没有办法对齐很长的文本

例如,此代码的示例:

System.out.println("\tHi this is a very long string to test the automated newline but I want to have the newline to be tab indented too.");
而不是在下面

    Hi this is a very long string to test the automated newline but I want to 
have the newline to be tab indented too.
我想要这个

    Hi this is a very long string to test the automated newline but I want to 
    have the newline to be tab indented too.

所以,我希望换行符与第一句保持一致。是否存在任何库或默认的字符串Java方法?

在print语句中使用(“\t”+“Hi,这是换行符”)

在print语句中使用(“\t”+“Hi,这是换行符”)

能否向我们展示您正在使用的代码?如果您希望两行都对齐并使用制表符,则可能需要\t在这两行上。能否向我们展示您正在使用的代码?如果希望两行都对齐并使用制表符,则可能需要在这两行上使用\t。

简而言之,不需要。控制台的宽度可能因执行而异,Java根本无法提供这些信息。但是,您可以假设最小值为80个字符,然后手动将其换行为80个字符。请参阅。

简而言之,不是。控制台的宽度可能因执行而异,Java根本无法提供这些信息。但是,您可以假设最小值为80个字符,然后手动将其换行为80个字符。请参阅。

我不相信JDK中有内置的方法来实现这一点

我所知道的最好的解决方案是使用它的一部分

此方法允许您指定要换行的列数以及换行符。您可以使用
\n\t
作为换行符,换行符将换行,然后按要求制表符缩进下一行

例如:

import org.apache.commons.lang3.text.WordUtils;

public class Demo
{
    public static void main(String[] args)
    {
        String longString = "\tThe quick brown fox jumps over the fence";
        System.out.println(WordUtils.wrap(longString, 10, "\n\t", false));
    }

} 
--编辑--


Commons Lang库可能太大,无法包含在Android应用程序中。但是,
WordUtils.wrap(…)
的源代码是现成的,因此您可以随时创建自己的精简版
WordUtils

我认为JDK中没有内置的方法来实现这一点

我所知道的最好的解决方案是使用它的一部分

此方法允许您指定要换行的列数以及换行符。您可以使用
\n\t
作为换行符,换行符将换行,然后按要求制表符缩进下一行

例如:

import org.apache.commons.lang3.text.WordUtils;

public class Demo
{
    public static void main(String[] args)
    {
        String longString = "\tThe quick brown fox jumps over the fence";
        System.out.println(WordUtils.wrap(longString, 10, "\n\t", false));
    }

} 
--编辑--


Commons Lang库可能太大,无法包含在Android应用程序中。但是,
WordUtils.wrap(…)
的源代码很容易获得,因此您可以始终创建自己的精简版本的
WordUtils

通过
String
API实现单词包装没有直接的方法。你必须想出自己的实用方法。下面是一个简单的实现,它将
字符串
输入包装为指定的
行大小

void printWordWrapped(String string, int lineSize) {
    int len = (len = string.length()) > lineSize ? lineSize : len;
    do {
        System.out.printf("\t%s\n", string.substring(0, len).trim());
        string = string.substring(len);
        len = (len = string.length()) > lineSize ? lineSize : len;
    } while (len > 0);
}

printWordWrapped("Hi this is a short string.", 30);
System.out.println();
printWordWrapped("Hi this is a very long string to test " +
                 "the automated newline but I want to have " + 
                 "the newline to be tab indented too.", 30);
输出


没有通过
String
API直接实现单词包装的方法。你必须想出自己的实用方法。下面是一个简单的实现,它将
字符串
输入包装为指定的
行大小

void printWordWrapped(String string, int lineSize) {
    int len = (len = string.length()) > lineSize ? lineSize : len;
    do {
        System.out.printf("\t%s\n", string.substring(0, len).trim());
        string = string.substring(len);
        len = (len = string.length()) > lineSize ? lineSize : len;
    } while (len > 0);
}

printWordWrapped("Hi this is a short string.", 30);
System.out.println();
printWordWrapped("Hi this is a very long string to test " +
                 "the automated newline but I want to have " + 
                 "the newline to be tab indented too.", 30);
输出



\t
是一个制表符,但您可能应该首先了解为什么第一行是这样对齐的。对不起,我错了,我编辑了我的问题…
\t
是一个制表符,但您可能应该首先了解为什么第一行是这样对齐的。对不起,我的错误,我编辑了我的问题…我仍然认为这是一个选项,因为它可能不可能使用,因为我永远不知道答案,但我仍然投票支持你的答案。我仍然认为这是一个选项,因为它可能不可能使用,因为我永远不知道答案,但我仍然投票支持你的答案。我仍然认为这是一个选项因为它可能无法使用,因为我永远都不知道wrapLength,但我仍然投票支持你的答案。如果你知道屏幕分辨率和字体,你可能可以计算出当前显示的列数(wrapLength)。本教程解释了如何使用Java 2D实现这一点,因为我的字符串宽度有时会有所不同,所以我不能静态地输入数字:我仍然认为这是一个选项,因为可能无法使用它,因为我永远不知道长度,但我仍然投票支持您的答案。您可能能够计算出屏幕上的列数如果您知道屏幕分辨率和字体,则为当前显示(wrapLength)。本教程解释了如何使用Java实现这一点,因为我的字符串宽度可能会不时变化,所以不能静态地放置数字:我同意没有办法做到这一点。但是,我不能使用这种方式,因为在转到换行符之前,我永远无法知道字符串的长度:(@Rendy,您不必知道长度。只需始终选择一个lineSize常量。30仅用于演示。例如,电子邮件中使用的标准换行符大小为80。无法静态输入数字,因为我的字符串宽度可能会不时变化:DIt不是您必须知道的字符串长度,它是视图的长度,它是总是以某种方式知道。在HTML中,它可能是
的宽度,或者类似于电子邮件,内容的宽度
通常约为80。对于记事本这样的桌面应用程序,它将是根据窗口的当前大小计算的列数。同样,在Android中,也有一种方法可以知道
文本vi的当前宽度ew
这是决定这里的
行大小的因素。同样,字符串的长度不重要,也不需要事先知道。是的,我同意没有办法做到这一点。但是,我不能用这种方式,因为在转到newline之前,我永远不知道字符串的长度:(@Rendy,您不必知道长度。只需始终选择一个线宽常量。30仅用于演示。例如,电子邮件中使用的标准换行符大小为80。无法输入数字统计