2016-11-05 5 views
-3

Update 3: решена, спасибоКак добавить строку с петлей

Update 2: ок теперь я очень близко, но не печатает Хвосты

Update Я не хочу использовать StringBuilder, как Я не узнал об этой концепции. Я не могу понять, что не так, и как я добавляю один к r

Здравствуйте, я пытаюсь выяснить, как выполнить задание, в котором запрашивается int для ввода пользователем, и будет генерировать несколько флагов монет в форме String в шаблоне HHTHTHTTHHHH и т. д. в зависимости от того, какой вход пользователь выбрал.

Окончательное обновление решена:

public class Stringaddition{ 
public static void main(String[] args) 
{ 
System.out.println(coinflip(8)); 
} 

public static String coinflip(int a){ 
String r =""; 
for(int i = 0; i < a; i++){ 
    int coin = (int) (Math.random() * 2); 
    if (coin == 0) { 
     String one = "T"; 
    r+=one; 
    } 
    else if (coin == 1){ 
     String one = "H"; 
    r +=one; 
} 

} 
return r; 
} 


} 
+1

'. =' не является оператором в Java. –

+0

+ = не работает – Nick

+0

'String r + = one;' говорит, создайте строку 'r' и назначьте ее' r + one'. 'r' еще не определен, поэтому вы не можете' + = 'с ним. –

ответ

0

Вы должны объявить пустую строку вне цикла, и добавить внутри цикла. += также менее эффективен, чем StringBuilder, так вот это решение

public static String coinflip(int a){ 
    StringBuilder sb = new StringBuilder(); 
    for(int i = 0; i < a; i++){ 
     int coin = (int)(Math.random() * 2); 
     sb.append(coin == 0 ? "T" : "H"); // like an if-else 
    } 
    return sb.toString(); 
} 
0

Поскольку это назначение для вас, я не буду писать всю программу, вот наконечник, чтобы добавить различные строки вместе, хотя:

String one = "H" 
String r = ""; 

r += one; // basically "" + "H" = "H" 
System.out.println(r); // will print out "H" 

Вы также можете использовать StringBuilder

0
public class Stringaddition{ 
public static void main(String[] args) 
{ 
System.out.println(coinflip(8)); 
} 

public static String coinflip(int a){ 
String r =""; 
for(int i = 0; i < a; i++){ 
    int coin = (int) (Math.random() * 2); 
    if (coin == 0) { 
     String one = "T"; 
    r+=one; 
    } 
    else if (coin == 1){ 
     String one = "H"; 
    r +=one; 
} 

} 
return r; 
} 


} 
+0

YESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS – Nick

Смежные вопросы