2011-10-16 46 views
0

林Java和開始做測試驅動開發初學者內循環。我有一個很堅強的基本情景。我想傳遞一串從1到x的數字。即如果x爲3,它會返回 「1,2,3」,或者如果x是5,它會返回 「1,2,3,4,5」。的Java對於數組列表

我知道我需要使用數組列表和for循環,但我堅持的語法。有人請幫忙!

感謝

+1

A「數字串」或「編號列表」? – NullUserException

+0

我不明白這與TDD有什麼關係。另外,如果你在使用基本語言的語法方面遇到困難,那麼嘗試應用TDD可能會讓購物車擺在首位。 –

+1

爲什麼不發佈你現在擁有的東西。這會讓你更受教育。 –

回答

2

試試下面的代碼:

int x = 5; 

StringBuilder sb = new StringBuilder(); //You need import java.util.StringBuilder 

for (int i = 1; i <= 5; i++) { 
    sb.append(i); 
    if (i!=x) { 
     sb.append(','); 
    } 
} 

String result = sb.toString(); //Here will be "1,2,3,4,5" 
+3

你在for語句中有一個拼寫錯誤,改變'1 ++' - >'i ++' – amit

+0

你是對的** amit **謝謝! –

1

這裏是一個開始:

String output = ""; 
int x = 5; 

for (int i=1; i<=5; i++) 
{ 
    output += i + ", "; 
} 

System.out.println(output); 
// prints the string "1, 2, 3, 4, 5, " 
+0

這將實際上打印「,1,2,3,4,5」,賴特? –

+1

呃。是。感謝您的更正。 –

+0

我想返回而不是打印它。我想讓這個測試通過 –

0

如果是使用數組列表,你可以使用「添加」和「要求獲得」方法的ArrayList:

List<Integer> listOfIntegers = new ArrayList<Integer>(); 

int = 5; 
String stringOfIntegers = ""; 

for (int i = 1; i <= 5; i++) { 
    listOfIntegers.add(i); 
} 

for (int i = 0; i < 5; i++) { 
    stringOfIntegers += listOfIntegers.get(i); 
    stringOfIntegers += ","; 
} 

System.out.println(stringOfIntegers); 

新增:

public String numberString(){ 
    List<Integer> listOfIntegers = new ArrayList<Integer>(); 

    int = 5; 
    String stringOfIntegers = ""; 

    for (int i = 1; i <= 5; i++) { 
     listOfIntegers.add(i); 
    } 

    for (int i = 0; i < 5; i++) { 
     stringOfIntegers += listOfIntegers.get(i); 
     stringOfIntegers += ","; 
    } 

    return stringOfIntegers; 
} 

[從方法返回] [從那裏你告訴它的方法返回到算什麼號碼]

public String numberString(int maxNumber){ 
    List<Integer> listOfIntegers = new ArrayList<Integer>(); 

    String stringOfIntegers = ""; 

    for (int i = 1; i <= maxNumber; i++) { 
     listOfIntegers.add(i); 
    } 

    for (int i = 0; i < 5; i++) { 
     stringOfIntegers += listOfIntegers.get(i); 
     stringOfIntegers += ","; 
    } 

    return stringOfIntegers; 
} 

因此,舉例來說,如果你在一個值傳遞「7」返回的字符串將是:「1,2,3,4,5,6,7」。要「調用」這個方法,你可以使用類似:

public static void main(String[] args){ 
    MyClass myClass = new MyClass(); //This will be the name of the class you created 

    String myNumberString = myClass.numberString(6); 

    System.out.println("My number string is: " + myNumberString); //This will print: "1,2,3,4,5,6" 
} 
+0

謝謝你。欣賞它!如果我想返回一個字符串,例如「1,2,3,4,5」而不是打印線我將如何做到這一點?還有什麼方法可以在這裏使用ArrayList? –

+0

對不起,我剛剛意識到你在這裏使用了一個arraylist –

+0

「stringOfIntegers」變量將包含你正在尋找的字符串,即「1,2,3,4,5」。如果您需要從方法返回,請嘗試添加的編輯中的代碼。 – travega

0
String s = ""; 
int x = 5; 

for(int i = 1; i <= x; i++) s += i + (i!=x?", ":""); 

System.out.println(s); // It prints "1, 2, 3, 4, 5"