JavaSE_16th_常用类——String类常用方法

一、String类常用方法(1)

package com.hpe.string;

public class TestString2 {
	public static void main(String[] args) {
		String s1 = "sun java", s2 = "Sun Java";
		System.out.println(s1.charAt(1));//u
		System.out.println(s2.length());//8
		System.out.println(s1.indexOf("java"));//4
		System.out.println(s1.indexOf("Java"));//-1
		System.out.println(s1.equals(s2));//false
		System.out.println(s1.equalsIgnoreCase(s2));//true
		
		String s = "我是程序员,我在学java";
		String sr = s.replace('我', '你');
		System.out.println(sr);//你是程序员,你在学java
	}
}
总结:
1)String类有一个方法length()可以得出当前字符串对象的字符序列长度。srt.length();
2)数组也有一个变量length可以获取数组长度。用法:a.length
3)集合中通过list.size()来获取列表长度。


二、String类常用方法(2)
package com.hpe.string;

public class TestString3 {
	public static void main(String[] args) {
		String s = "Welcome to Java World!";
		String s1 = "  sun java   ";
		System.out.println(s.startsWith("Welcome"));//true
		System.out.println(s.endsWith("World"));//false
		
		String sL = s.toLowerCase();
		String sU = s.toUpperCase();
		System.out.println(sL);//welcome to java world!
		System.out.println(sU);//WELCOME TO JAVA WORLD!
		String subS = s.substring(11);
		System.out.println(subS);//Java World!
		String sp = s1.trim();
		System.out.println(sp);//sun java
	}
}


三、String类常用方法(3)

字符串连接

1)使用“+”

int age = 25;
String result = "年龄:" + age;
说明:数值型变量将自动转换成String类型
输出结果:年龄:25

2)使用String类的contact()方法
String str1 = new String("欢迎学习:");
String str2 = new String("Java");
String result = str1.concat(str2);
System.out.println(result);
说明:A.concat(B),B字符串将被连接到A字符串后面,但实际上是重新分配了新的内存地址来存放新的字符串。

运行结果:

欢迎学习:Java

四、String类常用方法(4)

a、静态重载方法
public static String valueOf(...)可以将基本数据类型转换为字符串。
b、方法public String[] split(String regex)可以将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组。
package com.hpe.string;

public class TestString4 {
	public static void main(String[] args) {
		int j = 1234567;
		String sNumber = String.valueOf(j);
		System.out.println("j是" + sNumber.length() + "位数");
		
		String s = "Marry,F,1976";
		String[] sPlit = s.split(",");
		for(int i=0; i<sPlit.length; i++) {
			System.out.println(sPlit[i]);
		}
	}
}
运行结果:
j是7位数
Marry
F
1976

四、练习
1、编写一个程序,输出字符串中的大写英文字母数,小写英文字母数以及非英文字母数。
下面程序列出了三种方法:
package com.hpe.string;

public class TestString5 {
	public static void main(String[] args) {
		String s = "AhkjJ3K4JlKD2gJ/[jHGgGFGFfhJK.;]-=trh";
		int lCount = 0, uCount = 0, oCount = 0;
		
		//使用charAt方法拿到无序字符串中指定位置的字符,并判断该字符的ASCII码值是否属于大小写字母范围。
		for (int i = 0; i < s.length(); i++) {
			char c = s.charAt(i);
			if (c >= 'a' && c <= 'z') {
				lCount++;
			} else if (c >= 'A' && c <= 'Z') {
				uCount++;
			} else {
				oCount++;
			}
		}
/*		
		//使用基础类型包装类Character的静态方法isLowerCase和isUpperCase来判断无序字符串中指定的第i个字符串是否是大小写字母
		for (int i = 0; i < s.length(); i++) {
			char c = s.charAt(i);
			if (Character.isLowerCase(c)) {
				lCount++;
			} else if (Character.isUpperCase(c)) {
				uCount++;
			} else {
				oCount++;
			}
		}
*/
		
/*
		//indexOf法(在大小写26个字母序列中索引指定的无序字符串中的第i个字符)		
		String sL = "abcdefghijklmnopqrstuvwxyz";
		String sU = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
		for (int i = 0; i < s.length(); i++) {
			char c = s.charAt(i);
			//indexOf方法用于在当前字符串序列中查找指定字符第一次出现的位置,如果未找到,返回-1
			if (sL.indexOf(c) != -1) {
				lCount++;
			} else if (sU.indexOf(c) != -1) {
				uCount++;
			} else {
				oCount++;
			}
		}
*/
		System.out.println("小写字母:" + lCount);
		System.out.println("大写字母:" + uCount);
		System.out.println("其他字符:" + oCount);
	}
}
运行结果:
小写字母:12
大写字母:15
其他字符:10
总结:
无非就是挨个儿判断给定字符串中的每一个字符是否是大写、小写英文字母、非英文字母。
从字符串中拿出指定位置的字符,使用String类的charAt()方法。
如str.charAt(5),返回str字符串中的第5个字符。


2、编写一个方法,输出在一个字符串中,指定字符串出现的次数。
实现思路:使用indexOf方法在字符串中查找指定字符序列(如"abc"),当找到了(返回值不为-1),将count++,indexOf方法的返回值为"abc"在字符串中第一次出现的位置,
将该位置记为index,并加上3("abc"的长度),在index+3的位置使用substring方法截子串,下次再对子串进行indexOf查找,以此类推,直到在剩下的找不到"abc"(indexOf方法返回-1),退出循环,打印count计数。
package com.hpe.string;

import java.util.Scanner;

public class TestString6 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		String str = "sunssajavaijjavaokjaval[kujavajavayujava";
		System.out.print("在" + str +"这个字符串序列中,请输入您要查找的字符内容:");
		String strToFind = input.next();
		int index = -1;
		int count = 0;

		while((index = str.indexOf(strToFind)) != -1) {
			str = str.substring(index + strToFind.length());
			count++;
		}
		System.out.println(strToFind + "出现了" + count + "次");
	}
}

输入:java

运行结果:

java出现了6次






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值