您的位置:首页 > 编程语言 > Java开发

Java基础02——String

2015-05-07 21:34 288 查看
-------android培训java培训、期待与您交流! ----------

String方法

1. 获取:
1.1 获取字符串中字符的个数(长度).
int length();
1.2 根据位置获取字符。
char charAt(int index);
1.3 根据字符获取在字符串中的第一次出现的位置.
int indexOf(int ch)
int indexOf(int ch,int fromIndex):从指定位置进行ch的查找第一次出现位置
int indexOf(Stringstr);
int indexOf(Stringstr,int fromIndex);
根据字符串获取在字符串中的第一次出现的位置.
int lastIndexOf(int ch)
int lastIndexOf(intch,intfromIndex):从指定位置进行ch的查找第一次出现位置
int lastIndexOf(Stringstr);
int lastIndexOf(Stringstr,int fromIndex);
1.4 获取字符串中一部分字符串。也叫子串.
String substring(int beginIndex,intendIndex)//包含begin
不包含end 。
String substring(int beginIndex);

2. 转换
2.1 将字符串变成字符串数组(字符串的切割)
String[]  split(Stringregex):涉及到正则表达式.
2.2 将字符串变成字符数组。
char[] toCharArray();
2.3 将字符串变成字节数组。
byte[] getBytes();
2.4 将字符串中的字母转成大小写。
String toUpperCase():大写
String toLowerCase():小写
2.5  将字符串中的内容进行替换
String replace(charoldch,charnewch);
String replace(String s1,String s2);
2.6 将字符串两端的空格去除。
String trim();
2.7 将字符串进行连接 。
String concat(string);
3,判断
3.1 两个字符串内容是否相同
boolean equals(Objectobj);
boolean equalsIgnoreCase(stringstr);忽略大写比较字符串内容。
3.2 字符串中是否包含指定字符串?
boolean contains(stringstr);
3.3 字符串是否以指定字符串开头。是否以指定字符串结尾。
boolean startsWith(string);
boolean endsWith(string);
 4,比较

<span style="font-size:12px;">String s1 = "abc";//s1是一个类类型变量,"abc"是一个对象;字符串特点:一旦被初始化就不可以被改变
String s2 = new String("abc");
//s1在内存有一个对象,s2在内存有2个对象
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));//String类复写了Object类中的equals方法,该方法用于判断字符串 是否相同。

</span>


<span style="font-size:12px;">String s1 = "张三,李四,王五";
char[] chs = s1.toCharArray();
for(int i=0; i<chs.length; i++)
{
System.out.println(chs[i]);
}</span>


正则表达式:可以通过指定摸个模式来匹配,替换或分隔一个字符串。如: String s = "a+b$#c".replaceAll("[$+#], "NNN"");

split方法可以将一个带特定限定符的字符串中提取标志,如下例:

<span style="font-size:12px;">String[] tokens = "Java#HTML#Perl".split("#", 0);//0代表模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。
for(int i=0; i<tokens.length; i++)
{
System.out.print(tokens[i] + " ");
}</span>
字符串和数组间的转换:

<span style="font-size:12px;"><span style="white-space:pre">	</span>字符串转数组:
char[] chars = "Java“.toCharArray();
char[] dst = {'J', 'A', 'V', 'A', '0', '1', '7', '3'};
"CS7320".getChars(2, 6, dst, 4);
数组转字符串
String s1 = new String(new char[]{'J', 'A', 'V', 'A'});
String s2 = String.valueOf(new char[]{'J', 'A', 'V', 'A'});</span>


StringBuffer:就是字符串缓冲区,用于存储数据的容器。
特点:
1,长度的可变的。

2,可以存储不同类型数据。

3,最终要转成字符串进行使用。
4,可以对字符串进行修改。
既然是一个容器对象。应该具备什么功能:
1,添加:
 
StringBuffer append(data);
 
StringBuffer insert(index,data);
 2,删除:
StringBuffer delete(start,end):包含头,不包含尾。
StringBuffer deleteCharAt(intindex):删除指定位置的元素
3,查找:
char charAt(index);
int indexOf(string);
int lastIndexOf(string);
4,修改:
StringBuffer replace(start,end,string);
void setCharAt(index,char);
增删改查  C(create)U(update)R(read)D(delete)

StringBuilder:jdk1.5以后出现了功能和StringBuffer一模一样的对象
不同的是:
StringBuffer是线程同步的。通常用于多线程。
StringBuilder是线程不同步的。通常用于单线程。 它的出现提高效率。
jdk升级目的:
1,简化书写。
2,提高效率。
3,增加安全性。
例:将int数组转为字符串并打印,如下:

<span style="font-size:12px;">public static String arrayToString(int[] arr)
{
StringBuilder sb = new StringBuilder();
sb.append("[");
for(int i=0; i<arr.length; i++)
{
if(i != arr.length-1)
sb.append(arr[i] + ", ");
else
sb.append(arr[i] + "]");
}
return sb.toString();
}</span>


基本数据类型对象包装类
为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。用于描述该对象的类就称为基本数据类型对象包装类。
byte    Byte
short   Short
int     Integer
long    Long
float   Float
double Double
char    Character
boolean    Boolean
该包装对象主要用基本类型和字符串之间的转换
基本类型--->字符串
1,基本类型数值+""
2,用String类中的静态方法valueOf(基本类型数值);
3,用Integer的静态方法valueOf(基本类型数值);
字符串--->基本类型
1,使用包装类中的静态方法  xxx parseXxx("xxx类型的字符串");*****
int parseInt("intstring");
long parseLong("longstring");
boolean parseBoolean("booleanstring");
只有Character没有parse方法
2,如果字符串被Integer进行对象的封装。
可使用另一个非静态的方法,intValue();将一个Integer对象转成基本数据类型值。
例:对一个字符串中的数值进行从小到大的排序。

<span style="font-size:12px;">/**
*
* 思路:
* 1. 字符串的数值是对空格进行分隔——利用字符串对象的切割方法
* 2. 字符串——>基本数据类型,可以使用包装类
*		2.1 字符串——>字符串数组
*		2.2 字符串数组——>int数组
*		2.3 对int数组排序
*		2.4 排序后的int数组——>字符串
*/
public class WrapperTest {

private static final String SPACE_SEPARATOR = " ";
public static void main(String[] args)
{
String numStr = "20 78 9 -7 88 36 29";
System.out.println(numStr);
numStr = sortStringNumber(numStr);
System.out.println(numStr);
}

public static String sortStringNumber(String numStr)
{
String[] str_arr = stringToArray(numStr);
int[] num_arr = toIntArray(str_arr);
mySortArray(num_arr);
String temp = arrToString(num_arr);
return temp;
}
public static String[] stringToArray(String numStr)
{
String[] str_arr = numStr.split(SPACE_SEPARATOR);
return str_arr;
}
public static int[] toIntArray(String[] str_arr)
{
int[] arr = new int[str_arr.length];
for(int i=0; i<arr.length; i++)
{
arr[i] = Integer.parseInt(str_arr[i]);
}
return arr;
}
public static void mySortArray(int[] num_arr)
{
Arrays.sort(num_arr);
}
public static String arrToString(int[] num_arr)
{
StringBuilder sb = new StringBuilder();
for(int i=0; i<num_arr.length; i++)
{
if(i != num_arr.length-1)
sb.append(num_arr[i] + SPACE_SEPARATOR);
else
sb.append(num_arr[i]);
}
return sb.toString();
}
}</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: