Java学习之String类

本文深入探讨 Java 中 String 类的使用,包括基本操作、内存模型、字符串比较、转换及特殊方法,并通过实例演示如何应用这些特性进行字符串反转。

Java中的String类也是对字符串事物的描述,字符串的简单用法如下:

package com.jikexueyuan.ch;

import java.util.Scanner;
public class Test02 {
	public static void main(String[] args){
		String s1 = "abc";
		//字符串一旦被初始化就不可更改
		String s2 = new String("abc");
		//s1在内存中只有一个对象 s2在内存中有两个对象
		//s2的内存模型如下图
		System.out.println(s1 == s2);//s1 s2是不同的对象
		System.out.println(s1.equals(s2));//该方法来判断字符串是否想等
	}
}

s2的内存模型

String类的基本操作

1 字符串的长度

int length();


2从字符串中取出指定位置的字符串

char charAt(int index);


3根据字符获取该字符在字符串中的位置

int indexOf(char ch);

int indexOf(char ch, int fromIndex)//从fromIndex位置开始查找

int indexOf(String str);

int indexOf(String str, int fromIndex);

int lastindexOf(int ch);


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

boolean contains(str);


5判断长度是否为0

boolean isEmapty();


6判断字符串是否以指定字符串开头/结尾

boolean stratsWith(str);

boolean endsWith(str);


7判断内容是否相同

boolean equals(str);


8将字符数组转成字符串

new String(chs);


9将字符串转成字符数组

char []chs = s.toCharArray();


10将字节数组转成字符串。
String(byte[])


11替换

String replace(oldchar, newchar);


12转换(字符串转换为大写或者小写)

String toUpperCase();

String toLowerCase();


13去空格(两端的)

String trim();


14比较

int compareTo(String);

示例如下:

package com.jikexueyuan.ch;

import java.util.Scanner;
public class Test02 {
	public static void main(String[] args){
		String str = "  Hello world Hello  ";
		System.out.println(str.length());//1
		char s = str.charAt(2);//2
		System.out.println(s);
		System.out.println(str.indexOf('l' ));//3
		System.out.println(str.indexOf('l', 6));//3
		System.out.println(str.indexOf("llo"));//3
		System.out.println(str.indexOf("llo", 6));//3
		System.out.println(str.lastIndexOf('l'));//3
		
		System.out.println(str.contains("llo"));//4
		System.out.println(str.isEmpty());//5
		System.out.println(str.startsWith("Hello"));//6
		System.out.println(str.endsWith("llo  "));//6
		
		String str1 = str.replace("Hello", "goodbye");//11
		System.out.println(str1);
		
		String str2 = str.toLowerCase();
		String str3 = str.toUpperCase();
		String str4 = str.trim();
		System.out.println(str2 +"\n"+ str3+"\n" + str4);
		int a = str2.compareTo(str3);
		System.out.println(a);
	}
}


练习:将字符串反转。
    /*
    思路:
    1,将字符串变成数组。
    2,对数组反转。
    3,将数组变成字符串。

package com.jikexueyuan.ch;

import java.util.Scanner;
public class Test02 {
	public static void main(String[] args){
		String str = "abcdefg";
		char[] chs = str.toCharArray();
		String s = reverse(chs, 0, str.length());
		System.out.println(s);
	}

	public static String reverse(char[] c, int x, int y) {
		// TODO Auto-generated method stub
		for(int start=x, end=y-1;start<end;start++,end--)
			swap(c, start, end);
		return new String(c);
	}

	private static void swap(char[] c, int x, int y) {
		// TODO Auto-generated method stub
		char temp = c[x];
		c[x] = c[y];
		c[y] = temp;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值