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

java基础---String学习笔记一

2015-01-03 21:15 309 查看
----------- android培训java培训、java学习型技术博客、期待与您交流! ------------
String 学习笔记-基础篇

package String;

/**

* String类适用于描述字符串事物。

* 那么它就提供了多个方法对字符串进行操作。

*

* 常见的操作有那些?

* “abcd”

* 1,获取

* 1.1 字符串中的包含的字符数,也就是字符串的长度。

* int length();获取长度。

* 1.2 根据位置获取位置上的某个字符。

* 返回类型:char charAt(int index)

* 1.3 根据字符获取该字符在字符串中的位置。

* 返回类型:Int indexOf(int ch) 返回的是ch在字符串中第一次出现的位置

* int indexOf(int ch,int fromIndex) 从fromIndex指定位置开始,获取ch在字符串中出现的位置

*

* int indexOf(String str):返回的是str在字符串中第一次出现的位置

* int indexOf(String str,int fromIndex):从fromIndex指定位置开始,获取str在字符串中出现的位置

*

* 2,判断

* 2.1字符串中是否包含某一个子串

* boolean contains(str)

* 特殊之处:indexOf(str):可以索引str第一次出现位置,如果返回-1,表示str不再字符串中存在。

* 所以,也可以用于对指定判断是否包含。

* if(str.indexOf("aa")!=-1){}

* 而且该方法即可以判断,也可以获取出现的位置。

* 2.2字符中是否有内容

* boolean isEmpty() :原理就是判断长度是否为0.

* 2.3字符串是否是以指定内容开头

* boolean startswith(str)

* 2.4字符串是否是以指定内容结尾

* boolean endswith(str)

* 2.5判断字符串内容是否相同,复写了Objecr类中的equals方法。

* boolean equals(str);

* 2.6判断内容是否相同,并忽略大小写。

* boolean equalsIqnoreCase();

*

* 3转换

* 3.1将字符串数组转成字符串

* 构造函数:String(char[])

* String(char[],offset,count);将字符数组中的一部分转成字符串

*

* 静态方法:

* static String copyValueOf(char[]);

* static String copyValueOf(char[] data,int offset,int count);

*

* static String ValueOf(char []);

* 3.2将字符串转成字符数组

* char[] toCharArray();

* 3.3将字节数组转成字符串

* String (byte[])

* String (byte[] ,offset,count):将字节数组中的一部分转成字符串

* 3.4将字符串转成字节数组

* byte[] getBytes();

* 3.5将基本数据类型转成字符串。

* static String valueOf(int)

* static String ValueOf(double)

*

* 3+"";//String.valueOf(3);

*

* 特殊:字符串和字节数组在转换过程中,是可以指定编码表的

*

* 4.替换

* String replace(char oldChar, char newChar)

* String replace(CharSequence target, CharSequence replacement)

* 5.切割

* String[] split(regex);

* 6.子串

* 获取字符串中的一部分。

* String substring(begin);

* String substring(begin,end);

* 7.转换,去除空格,比较。

* 7.1 将字符串转换成大写或者小写

* String.toUpperCase();

* String.toLowerCase();

* 7.2将字符串两端的多余的空格去除

* String trim();

* 7.3对两个字符串进行自然顺序的比较。

* int compareTo(string);

*

*

*/

public class StringDemo {

/**

* 静态区

* 常量池

* 方法区

*

* CharSequence 字符序列

*

* @param args

*/

public static void main(String[] args) {

//这两种nuw字符串的方式是一样的

String s = new String();

String s1 = "ddd";//s1是一个类类型变量,“abc”是一个对象。

//字符串最大的特点,一旦被初始化,就不可以被改变

// s1 = "kk";

String s2 = new String("ddd");

//s1和s2有什么区别

//s1代表一个对象 s1在内存中有一个对象

//s2有两个对象 在内存中有两个对象

System.out.println(s1 == s2);

System.out.println(s1.equals(s2)); //String 类复写了Object类中equals方法,

//该方法用于判断字符串是否相同

//打印字符串的长度

method_get();

method_is();

method_tran();

menthod_replace();

method_split();

method_subString();

method_sum();

//去除空格

String s3 = " ab cd ";

sop("("+s3+")");

s = method_spiltTrim(s3);

sop("("+s+")");

String ss = reverseString(s);

sop("("+ss+")");

}

/**

* 1.将字符串变成数组

* 2.对数组反转

* 3.将数组变成字符串

*/

public static String reverseString(String str2){

//字符串变数组

char[] chs = str2.toCharArray();

//反转字符串

reverse(chs);

return new String(chs);

}

/**

* 反转字符串

* @param str2

*/

private static void reverse(char[] arr ) {

for(int start = 0,end = arr.length-1;start<end;start++,end--){

swap(arr,start,end);

}

}

//交换字符位置

private static void swap(char[] arr, int start, int end) {

char temp = arr[start];

arr[start] = arr[end];

arr[end]=temp;

}

/**

* 去除字符串两端空格

*/

public static String method_spiltTrim(String str){

int start = 0;

int end = str.length()-1;

while(start<=end && str.charAt(start)==' ')

start ++;

while(start<=end && str.charAt(end)==' ')

end --;

return str.substring(start,end+1);

}

public static void method_sum(){

String s = " HellO WorlD ";

sop(s.toUpperCase());//转大写

sop(s.toLowerCase());//转小写

sop(s.trim());//去掉前面和后面的空格

String s1 = "abc";

String s2 = "aaa";

sop(s1.compareTo(s2));//因为s1>s2所以返回一个整数

//如果s1<s2返回一个负数

}

public static void method_subString(){

String s = "abcdefg";

sop(s.substring(2));//从指定位置开始到结尾。如果角标不存在,会出现字符串角标越界的异常。

sop(s.substring(2, 4));//包含头,不包含尾。s.substring(0,s.length())

}

public static void method_split(){

String s = "zhang,wang,li,yang";

String [] chs = s.split(",");

for(String ch:chs){

sop("ch="+ch);

}

}

public static void menthod_replace(){

String s = "hello world";

String s1 = s.replace('l', 'm');//如果要替换的字符不存在,返回的还是原字符串

String s2 = s.replace("hello", "nihao");

sop("s="+s);

sop("s1="+s1);

sop("s2="+s2);

}

public static void method_tran(){

char [] arr = {'a','b','c','d','e'};

String s =new String(arr,1,3);

sop("s:"+s);

String s1 = "alkdjf";

char[] chs = s1.toCharArray();

for(char ch:chs){

sop(ch);

}

}

public static void method_is(){

String str = "ArrayDemo.java";

//判断开头是否包含Arr

sop(str.startsWith("Array"));

//判断结尾是否包含java

sop(str.endsWith(".java"));

//判断是否包含Demo

sop(str.contains("Demo"));

}

public static void method_get(){

String str = "abcdefajkuiop";

//长度

sop(str.length());

//根据索引获取字符。

sop(str.charAt(4));//4--> 40 当访问到字符串中不存在的角标是会发生StringIndexOutOfBoundsException.

//根据字符获取索引

sop(str.indexOf('d',0));//如果没找到返回-1

//反向索引一个字符出现的位置

sop(str.lastIndexOf("a"));

}

public static void sop(Object obj){

System.out.println(obj);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: