Java新手在这里。 我有以下代码,我希望它返回数组的中间元素。我该怎么做?我不想只是手动返回位置5和6处的元素,这是这里的中间元素。我会以一种适用于任何数组类型的方式,偶数或奇数。
/**
* Created by root on 2/11/15.
*/
import java.util.Scanner;
import java.util.Arrays;
public class test {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
//Create a string array to store the names
String arrayOfNames[] = new String[10];
System.out.print("Enter 10 names\n");
for (int i = 0; i < arrayOfNames.length; i++) {
System.out.print("\n" + (i+1) + " : ");
arrayOfNames[i] = scan.nextLine();
}
//show name one by one
Arrays.sort(arrayOfNames);
System.out.print("Names ");
for (int i = 0; i < arrayOfNames.length; i++) {
System.out.print("" + (i+1) + " : ");
System.out.print(arrayOfNames[i] + "\n");
}
}
}
答案 0 :(得分:2)
编写如下方法:
void printMiddleofArray(String[] arrayOfNames) {
if (arrayOfNames.length %2 ==0)
{
System.out.println(arrayOfNames[arrayOfNames.length /2]);
System.out.println(arrayOfNames[(arrayOfNames.length /2)-1]);
} else {
System.out.println(arrayOfNames[(arrayOfNames.length /2)-1]);
}
}
答案 1 :(得分:1)
这是另一个解决方案。它当然不那么优雅,但为初学者量身定制。它使用模数运算符检查偶数或奇数长度,调整使用零索引数组,然后根据结果做出决定。
在main()中声明一个String并通过调用此方法对其进行初始化,并将您的names数组作为参数传入。然后在下一行中打印String。
public String returnMiddleElement( String[] input ){
/* Initialize result variable */
String result = "";
/* Determine if the array is odd or even */
int value = input.length % 2;
/* Obtain the middle index */
int middleIndex = input.length/2;
/* Adjust for the zero index of arrays */
int evenMid = middleIndex - 1;
if( value == 0 ){
/* The array is even, so obtain the two middle elements */
result += input[evenMid] + "\n" + input[(evenMid+1)];
}
else{
/* The array is odd, so obtain the single middle element */
result += input[middleIndex];
}
return result;
}