黑马程序员技术交流社区
标题: 字符串 [打印本页]
作者: 古银平 时间: 2012-12-18 20:56
标题: 字符串
String s = “abc”;s 是一个类类型变量,”abc”是一个对象;
字符串最大特点:一旦被初始化就不可以被改变,是一个常量;
class StringDemo{
public static void main(String[] args) {
String s1 = "abc";
String s2 =newString("abc");
System.out.println(s1 ==s2); //false
System.out.println(s1.equals(s2)); //true
//Stirng类复写了Object类中equals方法,重写后用于判断字符串是否相同;
}
}
S1 和s2有什么区别?
S1在内存中有一个对象,
S2有2个对象,一个是通过new创建的,存在于堆内存中,另一个是”abc”存在于字符串缓冲区中;
String 类适用于描述字符串事物,那么它就提供了多个方法对字符串进行操作
常见的操作:
***1,获取. String str = "abcdef";
1.1 字符串中的包含的字符数,也就是字符串的长度
int length(); 获取长度
System.out.println(str.length());
1.2 根据位置获取位置上某个字符
char charAt(int index)
System.out.println(str.charAt(2));
1.3根据字符获取该字符在字符串中位置:
Int indexOf(int ch) 返回的是ch在字符串中第一次出现的位置
System.out.println(str.indexOf('a'));
Int indexOf(int ch,intfromIndex) : 从fromIndex指定位置开始,获取ch在字符串中出现的位置
int indexOf(String str): 返回的是str在字符串中第一次出现的位置 System.out.println(str.indexOf('c',2));
int indexOf(String str,intfromIndex): 从fromIndex指定位置开始,获取ch在字符串中出现的位置
int lastindexOf(int ch) ;获取字符在字符串中最后出现的索引位置;
System.out.println(str.lastIndexOf('a'));
2.判断:
2.1 字符串中是否包含某一个子串
boolean contains();
indexOf(str):可以索引str第一次出现位置,如果返回-1表示该str不在字符串中存在,所以,也可以用于对指定字符串的判断是否包含
例: if(str.indexOf(‘a’) != -1)
该方法既可以判断是否包含,也可以获取出现的位置;
2.2 字符中是否有内容
boolean isEmpty():原理就是判断长度是否为0;
2.3 字符串是否是以指定内容开头
boolean startsWith(str);
2.4 字符串是否是以指定内容结尾;
boolean endsWith(str);
2.5 判断字符串内容是否相同;复写了object类equals的方法;
boolean equals(str);
2.6 判断内容是否相同,并忽略大小写;
boolean equalsIgnoreCase();
3.转换;
3.1 将字符数组转成字符串;
构造函数: String(char[])
String(char[],offset,count):将字符数组中的一部分转成字符串,其中:offset:索引起始位,count:需要转换的个数;
静态函数:
staticStringcopyValueOf(char[]);
staticStringcopyValueOf(char[] date, int offset, int count);
**3.2 将字符串转成字符数组;
char[] toCharArray();
3.3 将字节数组转成字符串;
String(char[])
String(char[],offset,count):将字节数组中的一部分转成字符串,
3.4 将字符串转成字节数组;
byte[]getBytes();
特殊:字符串和字节数组在转换过程中,是可以指定编码表的
3.5 将基本数据类型转成字符串;
static String valueOf(int)
3+”” == String.valueOf(3);
4.替换
Stringreplace(oldchar,newchar);
public static voidmethod_replace() {
String s="hello java";
//替换字符,如果要替换的字符不存在,返回的还是原字符
String s1 =s.replace(‘a’,’e’);
}
5.切割
String split(regex);
public static voidmethod_split() {
String s="abc,def,ghi";
//在有逗号的位置把字符串分割
String[] arr=s.split(",");
遍历打印新的数组;
for(int x=0;x<arr.length;x++){
sop(arr[x]);
}
}
6.子串.获取字符串中的一部分
String substring(begin)
Stringsubstring(begin,end)
练习:
class StringDemo {
public static voidmain(String[] args){
method_get();
Method_trans();
String str="StudentDemo.java";
//判断文件名称是否以"Student"开头
sop(str.startsWith("Student"));
//判断文件是否是java文件
sop(str.endsWith(".java");
//判断文件名称是否包含"Demo.";
sop(str.contains("Demo.");
}
public static voidmethod_get() {
String str ="abcdabcdefg";
//长度;
sop(str.length());
//根据索引获取字符;
//当访问到字符串中不存在角标时,会发生角标越界异常;
sop(str.charAt(4));
//根据字符获取索引
//没有找到指定的字符,返回-1;
sop(str.indexOf('b',2));
//反向索引一个字符串的位置;
sop(str.lastIndexOf("a"));
}
public static voidsop(Object obj) {
//jvm1.5以后新特性,可以打印数组,也可以打印字符串;
System.out.println(obj);
}
public static voidmethod_trans() {
char[] arr ={'a','b','c','d','e'};
String str = newString(arr);
String str1 = newString(arr,1,4);
sop(str);
sop(str1);
}
}
7.转换,去除空格,比较;
7.1 将字符串转成大写或则小写。
String toUpperCase();
String toLowerCase();
7.2 将字符串两端的多个空格去除。
String trim();
7.3 对两个字符串进行自然顺序的比较。
intcompareTo(string);
作者: 许庭洲 时间: 2012-12-23 08:00
值得学习ing!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |