Я изучаю Java и ищу полный код для умножения элементов из 2 массивов, возможно, не импортируя ничего для его достижения.
В Python это довольно просто:
a=['a','b','c','d']
b=[1,2,3,4]
[x*y for x,y in zip(a,b)]
['a', 'bb', 'ccc', 'dddd']
Как я могу достичь того же в Java, когда первый массив представляет собой массив строк, а второй - целые числа?
Чтобы создать строку, заполненную несколькими экземплярами одного и того же символа типа "ccc"
вы можете создать массив символов, который будет содержать только 3 символа, например
char[] myCharacters = new char[3];
Теперь этот массив заполняется нулями ('\0'
), поэтому вам нужно заполнить его желаемым символом 'c'
. Вы просто делаете это, используя for
цикла
for (int i = 0; i<myCharacters; i++){
myCharacters[i] = 'c';
}
После этого ваш массив будет содержать ['c', 'c', 'c']
.
Теперь вы можете использовать этот массив для создания строки с использованием символов из нее. Для этого вам просто нужно передать этот массив в конструктор String, например
String myString = new String(myCharacters);
И вот ты туда. Теперь у вас есть строка "ccc"
. Повторите эти шаги для каждой пары элементов из массивов a
и b
.
Вы также можете использовать более короткую версию, какие виды делают то же самое
String myString = new String(new char[3]).replace('\0','c');//will produce "ccc"
Я боюсь, что Java не собирается поддерживать такую вещь изначально, и вам нужно будет выполнить свою собственную логику для ее реализации. Скажем, у вас есть ваша String[]
.
String[] a = {"a", "b", "c", "d"};
И у вас есть твой int[]
.
int[] b = {1,2,3,4};
Затем вам нужно проверить, что массивы имеют одинаковый размер.
if(a.length == b.length) {
// Continue.
}
Затем вам нужно реализовать цикл, чтобы пройти через каждый элемент массива.
for(int x = 0; x < a.length; x++)
{
// Some looping code.
}
И вы собираетесь захватить каждый предмет.
String value = a[x];
int multiplier = b[x];
Если вы ничего не импортируете, вы объявляете общее значение:
String total = "";
Но если вы разрешаете StringBuilder
, вы импортируете его и объявляете.
StringBuilder total = new StringBuilder();
ПРИМЕЧАНИЕ: StringBuilder настоятельно рекомендуется здесь.
И тогда вы multiplier
количество циклов.
for(int y = 0; y < multiplier; y++)
{
// If you use StringBuilder..
total.append(value);
// If you don't..
total += value;
}
// If you use StringBuilder..
a[x] = total.toString();
// If you don't...
a[x] = total;
Это установит значение a[x]
в повторяющуюся String
.
ПРИМЕЧАНИЕ. То, что также важно, опирается на хорошую практику. Если вы используете Java-код, он считает страшную практику многократным конкатенацией объектов String
. StringBuilder
более эффективен и является стандартом Java. Я бы настоятельно рекомендовал использовать это.
Получайте удовольствие, собирая все это вместе!
String [] strArr = new String[s];
//array for strings
for (int i = 0; i < s; i++) {
strArr[i]=strings[i];
}