带空格的Java填充字符串
我正在尝试向字符串添加填充,但是我不知道如何执行此操作。我的目标是拥有这样的东西:带空格的Java填充字符串,java,string-formatting,padding,Java,String Formatting,Padding,我正在尝试向字符串添加填充,但是我不知道如何执行此操作。我的目标是拥有这样的东西: Home:email@gmail.com 主页:email@gmail.com(冒号后7个空格) 上面有“Home:”硬编码,应该有7个空格和一个电子邮件变量。以下是我到目前为止的情况: return String.format("Home:%7s", email); 我的理解是,%7s是添加值为7的左填充,然后我有s作为填充后要包含的字符串。有人能帮我纠正一下吗 它看起来是这样的: Ho
Home:email@gmail.com
主页:email@gmail.com(冒号后7个空格)
上面有“Home:”
硬编码,应该有7个空格和一个电子邮件变量。以下是我到目前为止的情况:
return String.format("Home:%7s", email);
我的理解是,%7s
是添加值为7的左填充,然后我有s
作为填充后要包含的字符串。有人能帮我纠正一下吗
它看起来是这样的:
Home:email@gmail.com
所以当我有这样的东西时,一切看起来都很好:
return String.format("Home:%7s", "email");
第二次我添加变量而不是硬编码“email”,我就完全失去了填充。希望这会有所帮助
String email = "abc@jhkj.com";
System.out.println(String.format("Home:%1$3s%s%s", "", email));
输出:
主页:abc@jhkj.com
用文本格式表示的模板似乎有效。见:
String expected=“Home:email@gmail.com"; // (冒号后7个空格)
字符串电子邮件=”email@gmail.com";
assert expected==String.format(“主页:%7s”,电子邮件);
变量的使用&插入空格
注意email
变量是如何作为参数传递给format
方法以将其合并到模板中的
要在冒号之后和填充之前插入一个空格,只需将其添加到模板中,如下所示:String.format(“主页:%7s”,电子邮件)
间距
评论
//(冒号后7个空格)
可以通过填充来实现:将空字符串“
填充为7,格式为%7s
。结果总是7个空格。因此,可以通过插入常量直接注入7个空格
static final String SPACES_7=”“代码>
在冒号之后,例如:
String output=“Home:”+SPACES\u 7+电子邮件代码>
但是没有填充效果
这称为间距。在元素之间添加空间。这里的有效输出总是5+7长加上可变电子邮件长度。标签“主页:”和值email
之间的间距为7
衬垫
如果将15个字符的字符串填充到7个字符,则效果将是不填充,因为该字符串已经超过给定的填充大小
在你的问题中,你想
在填充后为要包含的字符串设置s
[placeholder]
⚠️ 填充不会(添加)在字符串之前或之后
扩展字符串的输出空间以保证最小宽度(与截断相反=最大宽度)。
它通过用pad char填充空间(左或右)来实现。
填充的目的通常是对齐(左、右、中)
在您的电子邮件用例中,这将添加字符(此处:空格)以具有固定大小的输出,并对齐电子邮件地址,以便在垂直堆叠多行时它们对齐
要实现有效的填充,应选择大于或等于字符串的填充大小。否则,较长的字符串可能会超出填充大小(这不是填充的目的)
请参阅,当电子邮件长度为15时,将在左侧添加5个空格,以实现固定大小的输出,或右对齐,或仅填充20
另见
- 格式化程序字符串:
希望这会有帮助::你应该自己研究:在网上搜索java pad string
会得到像Baeldung.com这样的教程,但我无法理解,因此,我在这里发布了一个我尝试过的示例,并要求澄清。您是否阅读了类java.lang.String
中方法的javadoc?它包含一个非常详细的语法解释。@hc\u dev我更新了上面的问题。我不知道如何在填充之前使用字符串,以及如何替换字符串变量来显示电子邮件。这确实有帮助。是的,我很感激。我只是认为我需要“%7s”来表示所需的间距?您的格式文本(模板)实际上添加了3个空格,如String.format(“%3s”),“”
。我认为我们应该通过填充来澄清我们所理解的内容。这只是一个术语,我同意u@hc_dev,但在这里,我们应该理解用户的期望,而不是关注他们使用了哪些术语。@Its Andrew u可以在发送邮件之前使用边距来定义额外的空间。@Koushlendra正是我们使用术语的方式(开发人员)用代码交流。同意:关注用户的期望!此外:首先与他们澄清,然后解释和(重新)指导他们,就像“你要求的是边距而不是填充。想象一下其他人寻求帮助,发现这个问题“带空格的Java填充字符串”回答:“通过添加3个空格使用固定边距””.那么他们对java字符串填充了解到了什么?