数组,字符串
2015-07-17 21:13
344 查看
数组
数组分一位数组和二维数组数组的关键点在
1)数组的声明。2)对数组进行内存分配。
3)初始化一个数组。
3)数组的常用方法。
声明
例如:java int [] a; 或int a[];
数组被声明后并没有在堆内存中为其元素进行内存分配而只是在栈内存中得到的一个内存空间;
对数组进行内存分配
例如:javaa =new int [i];
有new关键字在堆内存中开辟内存空间。注意一定要在[ ]中写数组的个数不然计算机不知道开辟多少内存空间。
数组的初始化
两种方法1)
java int [] a=new int []{1,2,3,4};
2) “`java
int [] a={1,2,3,4};
##二维数组 ```java int [][] a ; a= new int [3][]; <div class="se-preview-section-delimiter"></div>
或者
int [][]a =new int[3][ ]; <div class="se-preview-section-delimiter"></div>
赋初值:
int [][]={{1,2,3,4},{1,2},[1}} <div class="se-preview-section-delimiter"></div>
或
int [][]a =int [][]{{1,2},{3,4,5},{6,7}}; <div class="se-preview-section-delimiter"></div>
或
int[][] a =new int[3][]; a[0]=new int[]{1,2,3}; a[1]=new int []{4,5}; a[2]=new int []{8,9,10}; <div class="se-preview-section-delimiter"></div>
数组的基本方法
copyOf()与copyOfRange()
copyOf()是static函数,所以可以直接用类来引用。例如:int [] a = Arrays.copyOf(arr,newlength); <div class="se-preview-section-delimiter"></div>
将arr数组的newlength长度的元素复制给新的数组a;如果超出了arr的范围则用零补齐;
copyOfRange()与copyOf()的用法类似只不过要指定要复制数组的开头和结尾的下标,复制包括开始的标但不包括结尾的下标。
int [] a =Arrays.copyOfRange(arr,int fromIndex,int toIndex) <div class="se-preview-section-delimiter"></div>
从fromIndex开始复制到toIndex结束,包括fromIndex但不包括toIndex。
对数组进行排序的函数sort()函数
Arrays.sort(arr); <div class="se-preview-section-delimiter"></div>
对arr进行升序排序
equals函数
equals函数是比较两个数组的元素是否完全相等,如果完全相等则返回true,否则返回false;boolean a =equals(arra,arr2); <div class="se-preview-section-delimiter"></div>
toString
toString是将数组类型转化为字符串类型。例如int [] a ={a,x,c} String s = Arrays.toString(a); <div class="se-preview-section-delimiter"></div>
将a数组转化成了s 字符串。
函数binarySearch()来查找元素
int a = binarySearch(Object[] a,Object key); //a为要搜索的数组;key为要搜索的元素。返回值为索引号。 //如果没有可以,则返回负数。 <div class="se-preview-section-delimiter"></div>
5 字符串String
字符串的声明和初始化
例如:String s = "adgh"; <div class="se-preview-section-delimiter"></div>
或者:
String s = new String("adgh");//等价于下面两行代码 char a[]={'a','d','g','h'}; String s =new String(a); <div class="se-preview-section-delimiter"></div>
String()函数
String()函数是字符串的构造函数,它可以利用char类型的数组或者现成的字符串对新建的字符串进行初始化。
例如
1)String(char [])
“`java
char a[]={‘a’,’d’,’g’,’h’};
String s =new String(a);
2)String(char[] a ,int offset,int length); <div class="se-preview-section-delimiter"></div> ```java char a[]={'a','d','g','h'}; String s =new String(a,1,3);
offset是截取a数组的起始下标,length为截取的长度。
注:length的长度不能长于结尾,否则会报错。
3)String(char [] value)
String s = new String ("asdfg");
5.1 连接字符串
1)”+”例如
String s1 = "Hello"; String s2 = "world"; String s = s1 + s2;
2)concat
String s1 = "Hello"; String s2 = "world"; String s =s1.concat(s2);
注
只要“+”运算符的一个操作符是字符串,编译器就会将另一个操作数转换成字符串形式。获取字符串的长度
length();str.length();
字符串查找
1)indexOf()方法此方法的作用是返回要查找的字符(串)的在查找字符串中第一次出现时的索引值。
有多种形式:
indexOf(int ch );
indexOf(int ch, int fromIndex)
indexOf(String str)
indexOf(String str, int fromIndex)
ch为要查找的字符,fromIndex为要从哪个下标开始查找。str 为要查找的字符串。
2)lastindexOf( );
此函数与indexOf();的用法相同只不过是将查找的字符(串)最后出现的索引号返回。
获取指定索引位置的字符 charAt()函数
str.charAt(int index);
字符串操作
获取子字符串 substring()函数。
它返回一个新的字符串。1)substring(int beginIndex);
2)substring(int beginIndex, int endIndex)
例如:
String s = "asdffjhx"; String xs1 = s.Substring(2); String xs2 = s.Substring(2,5);
去除空格 trim()函数;
trim()返回字符串的副本,忽略前导空格和尾部空格。String s1 = " Hel lo "; String s3 = s1.trim(); System.out.println(s3);
显示为:Hel lo
字符串替换 replace()函数
str.replace(char oldChar ,char newChar)oldChar 为要替换的字符或字符串。
newChar 用于替换原来的字符串的内容。
判断字符串的开始和结尾 startsWith()和endsWith();
startsWith()和endsWith()用于判断字符串是否以指定的内容开始或结尾。这两个的返回值都是boolean类型。判断字符串是否相同 equals()方法和equalsIgnoreCase()方法
“==”仅仅可以判断两个字符串的地址是否相同。不能用于判断内容。str.equals(String otherstr)//区分大小写
str.equalsIgnoreCase(String otherstr)//不区分大小写
按字典顺序比较两个字符串 compareTo();
字母大小写转换 tolowerCase()和toUpperCase();
str.toLowerCase();//将str的大写字母转换为小写字母。 Str.toUpperCase();//将str的小写字母转换为大写字母。
字符串分割 split()方法
形式:1)str.split(String sign);
sign为指定的分隔符
2)str.split(String sign,int limit);
limit为分割的次数。
相关文章推荐
- Java中的HashCode方法
- CSS3 变形记
- [地图代数]处理DEM中的高程异常值——ArcGIS栅格计算的应用
- squid 重定向器
- 得到所有有名字的系统颜色
- 数组、字符串
- HashTable和ConcurrentHashTable的区别
- StackOverFlow精彩问答赏析:有jQuery背景的开发者如何建立起AngularJS的思维模式?
- Spring Mobile 与struts整合
- C++/C 实现http GET/POST操作
- ACM第三次比赛UVA11877 The Coco-Cola Store
- CSU 1160(进制问题)
- 阿里电话面试总结
- isalnum
- Android IOS WebRTC 音视频开发总结(三五)-- chatroulette介绍
- 每天一个Linux命令-5(tail)
- 我以前从来不会多想
- poj 2828 Buy Tickets(线段树)
- 线程安全函数是什么
- POJ 2923 状压好题