黑马程序员技术交流社区
标题:
查找数组中指定元素的位置(打印角标)
[打印本页]
作者:
xuxu5112
时间:
2015-8-27 00:42
标题:
查找数组中指定元素的位置(打印角标)
本帖最后由 xuxu5112 于 2015-8-27 00:44 编辑
/*
1.数组元素查找(查找指定元素第一次在数组中出现的索引)
2.数组中有很多重复的指定元素,如何找到该元素的所有位置(角标).
*/
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
int[] arr = {3,3,5,8,3,8,7,3}; //定义一个数组arr
print(arr); //调用方法print 打印
Scanner sc = new Scanner(System.in);
System.out.println("输入一个元素");
int x = sc.nextInt(); //输入一个数
first(arr,x);
System.out.println(x+"在数组中出现的角标是");
print(all(arr,x));
System.out.println("----------");
print_1(all(arr,x));//打印x在数组中位置的角标
}
public static void print(int[] arr) { // 定义方法print 遍历数组
for (int i = 0; i < arr.length ;i++ ) {
System.out.println(arr[i]);
}
}
public static void print_1(int[] arr) { // 定义方法print_1
if(arr[0]== -1) //arr[0]单独判断是否打印
System.out.println(0);
for (int i = 1; i < arr.length ;i++ ) {//打印数组中的非0字符
if (arr[i] != 0) {
System.out.println(arr[i]);
}
}
}
public static void first(int[] arr,int x){//定义方法first 查找数据x在数组arr
for (int i =0; i < arr.length ;i++ ) {//中第一次出现的位置
if (arr[i] == x) {
System.out.println(x+"在数组中第一次出现的角标是"+i);
break;
}
}
}
public static int[] all(int[] arr,int x) {//定义方法all 查找数据x在数组中所有出现的位置
int[] brr = new int[arr.length]; //定义数组brr 当做存角标的容器
if (arr[0]==x) { //单独判断 arr[0]
brr[0]= -1;
}
for (int i =1; i < arr.length ;i++ ) {//中第一次出现的位置 返回角标
if (arr[i] == x) {
brr[i] = i; //将x出现的坐标存入数组brr
}
}
return brr;
}
}
复制代码
666666.jpg
(52.73 KB, 下载次数: 1)
下载附件
2015-8-27 00:44 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2