Java语言怎么进行数组折叠,将第一个数组的结尾和第二个数组的开头串联,将第三个数组的开头和第二个数组的结尾串联,以此类推呢
依旧是两种方案, 效果如图:
public class ArrayFoldingExample {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3};
int[] arr2 = {4, 5, 6};
int[] arr3 = {7, 8, 9};
int[] result = new int[arr1.length + arr2.length + arr3.length];
// 将第一个数组的元素拷贝到结果数组
for (int i = 0; i < arr1.length; i++) {
result[i] = arr1[i];
}
// 将第二个数组的元素拷贝到结果数组
for (int i = 0; i < arr2.length; i++) {
result[arr1.length + i] = arr2[i];
}
// 将第三个数组的元素拷贝到结果数组
for (int i = 0; i < arr3.length; i++) {
result[arr1.length + arr2.length + i] = arr3[i];
}
// 输出结果
for (int num : result) {
System.out.print(num + " ");
}
}
}
方案二:
public class ArrayFoldingExample {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3};
int[] arr2 = {4, 5, 6};
int[] arr3 = {7, 8, 9};
int[] result = new int[arr1.length + arr2.length + arr3.length];
// 使用System.arraycopy()方法进行数组拷贝
System.arraycopy(arr1, 0, result, 0, arr1.length);
System.arraycopy(arr2, 0, result, arr1.length, arr2.length);
System.arraycopy(arr3, 0, result, arr1.length + arr2.length, arr3.length);
// 输出结果
for (int num : result) {
System.out.print(num + " ");
}
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话:例如,从键盘输入“I am a student”,统计a出现的次数
字符串转字符数组 字符串.toCharArray();
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine(); 获字符串,回车作为分隔符
import java.util.Scanner;
public class TestDemo{
public static int getCharCountOfString(String str, char c) {
//字符串转字符数组 字符串.toCharArray();
char[] arr = str.toCharArray();
int count = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == c){
count++;
}
}
return count;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
int count = getCharCountOfString(str, 'a');
System.out.println(count);
}
}
运行结果:
Java语言中,我们可以使用以下方法实现数组的折叠和串联操作:
代码示例:
public class ArrayUtils {
public static int[] foldArray(int[] array) {
int length = array.length;
int[] result = new int[length / 2 + length % 2];
for (int i = 0; i < length / 2; i++) {
result[i] = array[i] + array[length - 1 - i];
}
if (length % 2 == 1) {
result[length / 2] = array[length / 2];
}
return result;
}
}
代码示例:
public class ArrayUtils {
public static int[] concatenateArrays(int[]... arrays) {
int totalLength = 0;
for (int[] array : arrays) {
totalLength += array.length;
}
int[] result = new int[totalLength];
int currentIndex = 0;
for (int[] array : arrays) {
for (int element : array) {
result[currentIndex] = element;
currentIndex++;
}
}
return result;
}
}
使用上述代码示例,可以实现数组的折叠和串联操作。可以根据实际需求修改代码,例如修改参数类型为泛型,使其适用于不同类型的数组等。