2013-11-27 69 views
1

我需要收到一个整数,并让它在名称的字母之间打印出这些空格。现在我有它打印出一个空间。在Java中的字符串的字母之间添加x个空格?

public static void printLongName(int spaces){ 
String name 
char[] letter = name.toCharArray(); 
for(int i = 0; i < letter.length; i++) 
System.out.print(" " + letter[i]); 
System.out.println(); 
} 

回答

2
public static void printLongName(String name, int numOfSpacesBetweenLetters) { 
    StringBuffer sbSpace = New StringBuffer(); 
    for (int i = 0; i <= numOfSpacesBetweenLetters; i++) { 
    sbSpace.Append(" "); 
    } 

    char[] letter = name.toCharArray(); 
    for (int i = 0; i < letter.length; i++) { 
    System.out.print(sbSpace + letter[i]); 
    System.out.println(); 
    } 
} 
0
//System.out.print(" " + letter[i]); 
//System.out.print(getSpace(10) + letter[i]);like this you can 


public String getSpace(int count) 
{ 
    String space=""; 
    for(int i=0;i<count;i++) 
     space+=" "; 
    return space; 
} 
0

我相信你在寻找这样的事情:

System.out.format("[%13s]%n", ""); // prints "[    ]" (13 spaces) 
System.out.format("[%1$3s]%n", ""); // prints "[ ]" (3 spaces) 

这个正则表达式可以让你适当地添加空间。

+0

您可以连接您的变量将其添加到这个表达式,这样它会自动添加这些空格。 – Omicron

2

使用System.out.format()

System.out.format("%10c", letter[i]); 

更新

int spaces=10; 
    String name ="aaaaaaaa"; 
    char[] letter = name.toCharArray(); 
    for(int i = 0; i < letter.length; i++) 
     System.out.format("%10c", letter[i]); 
+1

线程“main”中的异常java.util.IllegalFormatConversionException:c!= java.lang.String – sunleo

0

您需要的参数输入首先构建空间字符串。请看下面的代码:

public static void printLongName(int spaces){ 
     String name = "hello"; 
     StringBuilder sb = new StringBuilder(); 
     String spaceStr = "%"+spaces+"c"; 
     char[] letter = name.toCharArray(); 

     for(int i = 0; i < letter.length; i++) { 
      if (i == 0) { 
       sb.append(letter[i]); 
      } else { 
       sb.append(String.format(spaceStr, letter[i])); 
      } 
     } 
     System.out.println(sb); 
    } 

    public static void main(String[] args) { 
     printLongName(4); 
    } 

更新一些代码。

0

这个函数会返回一个字符串,用空格:

String nameWithSpaces(String name, int spaces) { 
    StringBuilder sbname = new StringBuilder(name); 
    String spaces = String.valueOf(new char[spaces]).replace("\0", " "); 
    for (int i=1; i < sbname.length(); i += spaces.length()+1) 
     sbname.insert(i, spaces); 
    return sbname.toString(); 
} 
相关问题