2013-11-27 62 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(); 
} 
相關問題