Java基础知识2--数组

数组

数组也是一种数据类型,它本身是一种引用类型,例如:int是一个基本类型,但int[](这是定义数组的一种方式)就是一种引用类型。
数组定义3种方法
语法:

int [] 变量名 = new 变量名[数组长度];
int [] 变量名 = new 变量名 []{元素};
int [] 变量名 = {元素};

数组的初始化

  1. 静态初始化
    arrayName = new type[] {element1,element2,…};
    显示指定的数组元素的类型必须与new关键字后的type类型相同
    eg:

     //定义一个int数组类型的变量,变量名为intArr
     int []  intArr;
     //使用静态初始化,初始化数组时只能指定数组元素的初始值,不指定数组长度
     int Arr = new int [] {5,6,7,8};
     //使用静态初始化,数组元素的类型是定义数组时数组元素类型的子类
     Object []  objArr;
     objArr = new String [] {"java","zhang"};
    
  2. 动态初始化
    语法:

     arrayName = new type[length];//length为int类型
    

执行动态初始化的时候,程序员只需要定义数组的长度,即为每个数组元素指定所需的内存空间,系统将负责为这些数组元素分配初始值

  1. 整数类型(byte ,short,int,long),数组元素的值为0
  2. 浮点类型(float,double),数组元素为0.0
  3. 字符类型(char),数组元素的值为’\u0000’
  4. 布尔类型(boolean),数组元素的值为 FALSE
  5. 引用类型(类,接口和数组),数组元素的值为null

数组的访问

==注意:==在访问数组时下标不能大于或等于数组的长度,否则会报下标越界异常。数组的第一个元素下标为0

获取数组的长度:调用数组的length属性
eg:

  int len = arr.length;

数组复制

int a= {1,2,3,4}
int b =a;

数组没有赋值一说,=是两个数组同时拥有控制权

  1. int [] pins = {1,2,3};
    int [] copy = new int[pins.length];
    for( int i=0; i!=copy.length; i++)
    {
    copy[i]=pins[i];
    }

  2. System.arraycopy(源数组,源数组中的起始位置,目标数组,目标数组中的起始位置,要复制的数组元素的个数);

     int [] a = {1,2,3,4,5,6};
     int [] acopy = new int[6];
     System.arraycopy(a,1,acopy,0,4);//结果:2,3,4,5,6,0,0
    
  3. Arrays.copyOf 方法:
    获得原来数组的副本,如果newLength大于原数组进行截断处理,若小于则用0或Null进行填充

     类型 [] newArray = Arrays.copyOf(类型 [] original , int newLength);//此方法可以对数组进行扩容
    

eg:

	int [] arry ={1,12,23};
	arry = Arrays.copyOf(arry , arry.length+1);

二维数组的定义与初始化

1. int [][] a = new int[3][5];
2. int [][] a={
				 {1,2,34},
				 {2,3,4,5},
				 {4,3,6} 	//最后一个逗号可有可无
					 }

next()和nextLine()的区别

String s = new String("hello world");
String s=input.next();//读一个单词 hello
String s = input.nextLine();//读一句话 hello world

== 和equals()区别

		String s;
	s =input.next();
System.out.println(s=="bye");//输出bye,false类型不同
System.out.println(s.equals("bye"));//判断内容是否相同
	
	//compareTo比较大小
System.out.println("abc".compareTo("abcd"));
	
	
	//length获取字符串长度
String name = "hello",
		 str1 = "123",
		 str2 = " ",
		 str3;//没有管理任何String对象,输出会报错
		System.out.println(name.length());
		System.out.println(str1.length());
		System.out.println(str2.length());

	
	//charAt访问String中单个字符
	String str = "abc";
System.out.println(str.charAt(1));

遍历str中的字符

	for(int i=0; i<str.length(); i++)
	{
		System.out.println(str.charAt(i));
	}

subString字符串截断

String a ="1234hello";
System.out.println(a.substring(2));//获取2往后的所有,包括2		System.out.println(a.substring(2,5));//左闭右开

寻找字符串

indexOf(c) 得到c字符串所在位置,-1表示不存在
indexOf(c,n) 从n位置开始寻找c字符串
indexOf(t) 找到字符串t所在位置
	//从右侧开始找
LastIndexOf(c)
LastIndexOf(c,n)
trim()//去除两端的空格
toLowerCase()//小写
toUpperCase()//大写
	
	//以上所有都没有对字符串本身进行改变
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值