Нужно создать метод, который объединяет буквы или числа из двух массивов в один.
Например есть два массива - a
и b
, которые должны быть записаны в один массив следующим образом - [a[0],b[0],a[1],b[1] и т.д.]
Второй метод должен делать тоже самое, только в метод добавляется переменная n
, если переменная n = 2
, то метод сортирует след образом - [a[0],a[1],b[0],b[1] и т.д.]
Проблема: метод просто выкидывает числа или иногда пустые места в массиве:
public static char [] smesch(char []i, char []q){
String s = "";
for(int k = 0; k < Math.min(i.length, q.length); k++){
s += i[k] + q[k];
}
if(i.length < q.length){
for(int k = i.length; k < q.length; k++){
s += q[k];
}
}
else{
for(int k = q.length; k < i.length; k++){
s += i[k];
}
}
return s.toCharArray();
}
Зачем столько циклов? Все проще...
public class Test {
public static void main(String[] args) {
char[] x = {'1','3','5'};
char[] y = {'2','4','6','7'};
System.out.println(smesch(x, y));
}
public static char[] smesch(char[] arr1, char[] arr2) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < Math.max(arr1.length, arr2.length); i++) {
if (arr1.length>i) sb.append(arr1[i]);
if (arr2.length>i) sb.append(arr2[i]);
}
return sb.toString().toCharArray();
}
}
Вывод : 1234567
Второй случай сложнее, я бы использовал в такой задаче итераторы. Выглядить это будет примерно так:
public static void main(String[] args) {
Character[] x = {'1','3','5'};
Character[] y = {'2','4','6','7'};
System.out.println(smesch(x, y, 1));
System.out.println(smesch(x, y, 2));
}
public static char[] smesch(Character[] arr1, Character[] arr2) {
return smesch(arr1, arr2, 1);
}
public static char[] smesch(Character[] arr1, Character[] arr2, int n) {
StringBuilder sb = new StringBuilder();
Iterator<Character> iterator1 = Arrays.asList(arr1).iterator();
Iterator<Character> iterator2 = Arrays.asList(arr2).iterator();
boolean isFirstIterator = false;
for (int i = 0; i < arr1.length + arr2.length; i++) {
if (i % n == 0) isFirstIterator = !isFirstIterator;
if (isFirstIterator && iterator1.hasNext()) sb.append(iterator1.next());
else if (iterator2.hasNext()) sb.append(iterator2.next());
}
return sb.toString().toCharArray();
}
Из примитивных чаров я сделал ссылочные, потому как у массива итератора нет и нужно перекинуть его в лист. Для массива примитивных чаров эта задача таким способом не решается. Если там нужен принципиально именно массив примитивов, то способ конвертировать найдете в инете. В идеале, разумеется, прокинуть в метод коллекцию вроде листа, чтобы не выполнять преобразования совсем (если это допустимо для вас)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Хочу чтобы на каждого User в MySql создавался table с названием user'а Например создаю пользователя с именем John даю ему право Insert и Update для таблицы...
У меня в SQL таблице лежит значение в текстовом формате:
Подскажите, пожалуйста, как реализовать это посредством css flexboxОба блока max-width: 30em