如何在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。无法输入数字统计