为什么我把// private String namespace =“### Name:”+ name +“###”;和system.out.println(namespace)它出来了吗?
我想创建一个标签制作程序,但我仍然坚持如何排列右侧的#。
/*################################################
### ANNUAL CONFERENCE ###
############################################### #
###Name:Simon ###
### ###
############################################### #
###Organization:NBA ###
### ###
################################################*/
如何为我设置的任何给定名称排列它们? 我想设置名称,设置组织,打印标签的名称和组织,清除名称和组织,打印空白标签。
----------------更新4:09 AM --------------------------- - 我将在此之后建模我的代码:
public class Divers {
public static void main(String args[]){
String format = "|%1$-10s|%2$-10s|%3$-20s|\n";
System.out.format(format, "FirstName", "Init.", "LastName");
System.out.format(format, "Real", "", "Gagnon");
System.out.format(format, "John", "D", "Doe");
String ex[] = { "John", "F.", "Kennedy" };
System.out.format(String.format(format, (Object[])ex));
}
}
但有人可以告诉我如何以其他方式做到这一点吗?仅用于学习目的
public class AddressBookTester {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
TagMaker test = new TagMaker("Simon", "NBA");
test.printlL();
}
}
public class TagMaker {
private String name;
private String organization;
private String l = "################################################";
private String annual= "### ANNUAL CONFERENCE ###";
//private String namespace = "###Name:"+name+" ###";
private String l2= "### ###";
//private String organizationspace= "###Organization:"+organization+"###";
TagMaker (){
}
TagMaker (String tempName, String tempOrg){
name = tempName;
organization = tempOrg;
}
void setname(String tempName){
name = tempName;
}
String getname(){
return name;
}
void setorganization(String tempOrg)
{
organization = tempOrg;
}
String getorganization(){
return organization;
}
void printlL(){
System.out.println(l);
System.out.println(annual);
System.out.println(l);
System.out.println("###Name:"+name+" ###");
System.out.println(l2);
System.out.println(l);
System.out.println("###Organization:"+organization+" ###");
System.out.println(l2);
System.out.println(l);
}
}
答案 0 :(得分:1)
仔细查看String.format(...),尤其是Formatter documentation。它开头有点复杂,但它确实允许你打印固定长度的字符串(即用空格填充)。
您也可以find this页面提供帮助,其中包含一些有用的示例(尽管您必须对其进行调整和修改)。
答案 1 :(得分:1)
您需要为输出的最大宽度(以字符为单位)设置常量。然后你可以做一些简单的算术来计算你需要多少空格/字符等来正确格式化你的输出。
假设max_width = 60。
这是一个标题:
############################################################
(完整的60)
你根据你输出的字符串的字符长度来计算缩进和事物。
e.g。如果你想打印Name: Simon
得到它的长度并从max_length等减去等。
HTH。
答案 2 :(得分:0)
首先,您需要了解您的线路有多长。其次,您确定徽章内文本的长度。最后,动态插入空格以使长度相等的行。