Как я могу повторить строку N времена в Perl?

Другое событие NullPointerException возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

56
задан Ciro Santilli 新疆改造中心法轮功六四事件 11 March 2015 в 14:47
поделиться

4 ответа

$ perl -e 'print "4"x4; print "\n"'
4444

x оператор документируется в perldoc perlop. Здесь двоичный файл означает оператор, берущий два аргумента, не состоявшие из битов, между прочим.

Двоичный файл "x" является оператором повторения. В скалярном контексте или если левый операнд не включается в круглые скобки, он возвращается, строка, состоящая из левого операнда, повторила количество раз, определенное правильным операндом. В контексте списка, если левый операнд включается в круглые скобки или является списком, сформированным" qw/STRING/", это повторяет список. Если правильный операнд является нулем или отрицательный, это возвращает пустую строку или пустой список, в зависимости от контекста.

       print ’-’ x 80;             # Print row of dashes

       print "\t" x ($tab/8), ’ ’ x ($tab%8);      # Tab over

       @ones = (1) x 80;           # A list of 80 1’s
       @ones = (5) x @ones;        # Set all elements to 5

perl -e предназначен для выполнения кода Perl из командной строки:

$ perl --help
Usage: perl [switches] [--] [programfile] [arguments]
  
  -e program     one line of program (several -e's allowed, omit programfile)
95
ответ дан Peter Mortensen 26 November 2019 в 17:05
поделиться

В Perl Вы хотите использовать "x" оператор.

Примечание различие между

"4" x 4

и

("4") x 4

Первый производит повторную строку:

"4444"

последний повторный список:

("4", "4", "4", "4")
41
ответ дан bart 26 November 2019 в 17:05
поделиться

Это очень похоже в Perl

print "4" x 4;
16
ответ дан fedorqui 26 November 2019 в 17:05
поделиться

FWIW, it’s также print 4 x 4 в Perl.

В целом, в Perl, операторы являются мономорфными, т.е. у Вас есть различные наборы операторов для строковой семантики, для числовой семантики, для поразрядной семантики, и т.д., где это имеет смысл и тип операндов в основном doesn’t вопрос. При применении числового оператора к строке строка преобразовывается в число сначала, и Вы получаете операцию, которую Вы попросили (например, умножение), и когда Вы применяете строковый оператор к числу, it’s превратился в строку, и Вы получаете операцию, которую Вы попросили (например, повторение). Perl обращает внимание на оператор сначала и типы операндов только второй †“, если действительно это платит им какой-либо ум вообще.

Это - противоположность Python и большинства других языков, где Вы используете один набор операторов, и типы операндов определяют, какая семантика you’ll на самом деле получают †“, т.е. операторы являются полиморфными.

9
ответ дан Aristotle Pagaltzis 26 November 2019 в 17:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: