我确实检查了其他问题;这个问题的重点是最有效地解决这个特定问题。
有时您想创建一个具有指定长度的新字符串,并使用默认字符填充整个字符串。
也就是说,如果您可以new String(10, '*')
从那里创建一个新的String(长度为10个字符,都带有*),那就太酷了。
因为这样的构造函数不存在,并且不能从String扩展,所以必须创建包装器类或方法来为您执行此操作。
目前,我正在使用此:
protected String getStringWithLengthAndFilledWithCharacter(int length, char charToFill) {
char[] array = new char[length];
int pos = 0;
while (pos < length) {
array[pos] = charToFill;
pos++;
}
return new String(array);
}
它仍然缺少任何检查(即,当length为0时将不起作用)。我之所以首先构造数组,是因为我相信它比使用html" target="_blank">字符串合并或使用StringBuffer这样做要快。
还有谁有更好的解决方案?
Apache Commons
Lang(可能非常有用,可以在任何不重要的项目的类路径中使用)具有StringUtils.repeat():
String filled = StringUtils.repeat("*", 10);
简单!
这是我的代码目前的样子: 现在我需要 Inno 做的是保持用户输入不变,如果它已经是 16 位数字,则在末尾填充 0,如果它小于 16(例如,如果它是一个 15 位,则只有一个 0,如果是 14 位,则只有一个,等等)。什么功能能够做到这一点?
问题内容: 我需要产生固定长度的字符串以生成基于字符位置的文件。缺少的字符必须用空格字符填充。 例如,字段CITY具有15个字符的固定长度。对于输入“芝加哥”和“里约热内卢”,输出为 。 问题答案: 从Java 1.5开始,我们可以使用方法java.lang.String.format(String,Object …) 并使用类似于printf的格式。 格式字符串可以完成这项工作。其中表示参数索引
我需要产生固定长度的字符串来生成一个基于字符位置的文件。缺少的字符必须用空格字符填充。 例如,字段CITY具有15个字符的固定长度。对于输入“芝加哥”和“里约热内卢”,输出为
我正在做一个赋值,它需要一个以字符串和int为参数的方法。该方法应该用空格填充参数字符串,直到它的长度是给定的长度。例如,padString(“你好”,8应该返回“hello___”(_代表三个空格))如果int高于字符串的长度,那么它将简单地返回字符串。我很难关闭程序的“填充”部分。 由于这个任务是本书的早期内容,我假设它可以用初学者的东西来完成,例如forloops、参数和常见的字符串方法,因
我想将字符串拆分为固定长度,例如,拆分20个字符,如果拆分后长度小于20个字符,则用最多20个字符的空格填充字符串。 我使用上面的代码按相等大小进行拆分。
问题内容: 我有一个TCP套接字客户端,它从服务器接收消息(数据)。消息的类型为长度(2个字节)+数据(长度字节),由STX和ETX字符分隔。 我正在使用bufferedReader来检索前两个字节,对长度进行解码,然后再次从同一bufferedReader中读取适当的长度,并将结果放入char数组中。 在大多数情况下,我都没问题,但是有时(收到的数千条消息中有1条),当尝试从读取器读取(长度)字