Вы должны убедиться, что второй и третий параметры button_to
являются отдельными. В настоящее время ключи action
и class
передаются как один хеш, но они должны быть двумя аргументами: один для options
и один для html_options
.
Попробуйте (обратите внимание на дополнительные {...}
вокруг action: "new"
делает его отдельным хэшем):
= button_to("Click Me", { action: "new" }, class: "btn btn-primary")
Вы можете попробовать:
int length = word.length();
IntStream.range(0, length).forEach(i -> System.out.println(word.substring(0, length - i)));
Или
IntStream.range(0, length).mapToObj(i -> word.substring(0, length - i)).forEach(System.out::println);
Он использует Java stream
и очень лаконичен.
Вы только что сделали одну маленькую ошибку. Вы, вероятно, заметите, что вы не использовали k
ни для чего, поэтому вы просто выполняли одну и ту же задачу k
раз. Просто измените m <= word.length()-1
на m < word.length()-k
.
import java.util.*;
public class MyClass {
public static void main(String args[]) {
Scanner kbreader = new Scanner (System.in);
System.out.print("Enter a word: ");
String word = kbreader.nextLine();
for ( int k = word.length(); k > 0; k--)
{
for (int m = 0; m < word.length()-k; m++)
{
System.out.print(word.charAt(m));
}
System.out.println();
}
}
}
Функция подстроки - это то, что вы ищете. Он встречается (вероятно) в каждом языке программирования.
Вот рабочий пример: https://www.w3schools.com/jsref/jsref_substring.asp
Также важно, если вы используете отрицательное число для параметров, оно будет подстрокой от «конца» строки вместо передней, или она будет считать назад, а не вперед.
У вас есть счетчик в вашем цикле, поэтому вы легко сможете сыграть и заставить его работать с этой функцией.