Java学习 String类

public static void main(String[] args) 
	{
		String s1 = "abc";
		String s2 = "abc";
		
		String s3 = new String("efg");
		String s4 = new String("efg");
		
		System.out.println(s1 == s2);
		System.out.println(s3 == s4);
	}

字符串是常量,他们的值在定义后不能更改

String s1 = "abc";
String s2 = "abc";

字符串存放在常量池中,当定义一个字符串时,会检测常量池是否已经含有这个字符串,如果有就不再创建,否则重新创建。

String s3 = new String("efg");
String s4 = new String("efg");

而通过new产生的字符串对象有两个

public String(String original)    //String类的构造函数
他的形参是一个对象,这个对象位于常量池中(如果常量池中没有则创建),然后通过new在堆内存中产生一个对象。



String类的函数
1,获取字符串中字符的个数:int length()
2,获取某个位置上的字符:char charAt(int index)
3,获取某个字符在字符串中第一次出现的位置:
3.1 int indexOf(int ch)
3.2 int indexOf(int ch,int fromIndex) 从指定位置进行ch的索引(第一次出现的位置)

3.3 int indexOf(String str)

                3.4 int indexOf(String str,int fromIndex)

                3.5 int lastIndexOf(int ch)

                3.6 int lastIndexOf(int ch,int fromIndex)

                3.7 int lastIndexOf(String str)

                3.8 int lastIndexOf(String str,int fromIndex)

示例:

	public static void main(String[] args) 
	{
		String s1 = "asdfagf";
		System.out.println(s1.length());
		System.out.println(s1.charAt(2));
		System.out.println(s1.indexOf('a'));
		System.out.println(s1.lastIndexOf('a'));
		System.out.println(s1.indexOf("ag"));
	}

                4.获取字符串中一部分子串:

                         4.1 String substring(int beginIndex)

                         4.2 String substring(int beginIndex,int endIndex)    //包含beginIndex不包含endIndex

关于转换的函数:

1.将字符串变成字符串数组(字符串的切割)

    String[] split(String regex)  //涉及到正则表达式

2.将字符串变成字符数组

    char[] toCharArray()

String s2 = "葡萄牙,西班牙,巴西,法国";
		String[] str = s2.split(",");
		for(int x = 1;x<str.length;x++)
		{
			System.out.println(str[x]);
		}
		char[] ch = s2.toCharArray();
		for(int x = 1;x<ch.length;x++)
		{
			System.out.println(ch[x]);
		}

输出如下:

----------------------------------

西班牙
巴西
法国


,
西


,

西
,


---------------------------------------

3.将字符串转换成字节数组    byte[]  getBytes()

4.将字符串的字母转化成大小写

    String toUpperCase()

    String toLowerCase()

              

String s1 = "asdfagf";
		byte[] ch = s1.getBytes();
		for (int i = 0; i < ch.length; i++)
		{
			System.out.println(ch[i]);
		}
		System.out.println(s1.toUpperCase());

结果:


5.将字符串内容进行替换

            String replace(char oldchar,char newchar)

            String replace(String s1,String s2)

6.将字符串两边空格去除

            String trim()

7.将字符串进行连接  

            String  concat(String str)

String s1 = "eclipse tool";
		String s2 = " is good!";
		System.out.println(s1.replace('o', 'e'));
		System.out.println(s1.replace("se", "xx"));
		System.out.println("-"+" this is ha   "+"-");
		System.out.println("-"+" this is ha   ".trim()+"-");
		System.out.println(s1.concat(s2));

结果:

-----------------

eclipse teel
eclipxx tool
- this is ha   -
-this is ha-

eclipse tool is good!

----------------------

关于判断的函数:

1,两个字符串是否相同:

            boolean equals(Object obj)

            boolean equalsIgnoreCase(String str)    //忽略大小写来比较(只能比较字符串)

2,字符串是否包含特定字符串:

               boolean contains(String str)

3,字符串是否以某个字符串开头,或以某一个字符串结束

                boolean startsWith(String str)

                boolean endsWith(String str)

String s1 = "eclipse tool";
		String s2 = " is good!";
		String s3 = " is good!";
		String s4 = " Is gooD!";
		
		System.out.println(s2.equals(s3));
		System.out.println(s2.equalsIgnoreCase(s4));
		System.out.println(s1.contains("tool"));
		System.out.println(s1.startsWith("ecl"));
		System.out.println(s4.endsWith("D!"));

结果:

true
true
true
true

true

--------

关于比较的函数:

int compareTo(String str)  //按字典顺序比较两个字符串,返回两者相减的值

		String s1 = "abc";
		String s2 = "aca";
		String s3 = "aca";
		
		System.out.println(s1.compareTo(s2));
		System.out.println(s2.compareTo(s3));

结果:

-1

0

--------------


猜你喜欢

转载自blog.csdn.net/goddreamyyh/article/details/80745970