java常用类之String类

java常用类之String类

编写一个程序,

1.输出一个字符串中的大写英文字母数,小写英文字母数,以及非英文字母数

2.编写一个方法,输出在一个字符串中,指定字符串出现的次数

TestString.java

import java.util.regex.*;

/*
	编写一个程序,
	1.输出一个字符串中的大写英文字母数,小写英文字母数,以及非英文字母数
	2.编写一个方法,输出在一个字符串中,指定字符串出现的次数
*/
public class TestString {
	public static void main(String[] args) {
		/*
			1.输出一个字符串中的大写英文字母数,小写英文字母数,以及非英文字母数
		*/
		//定义一个字符串,包含多个大写英文字母,小写英文字母,以及非英文字母
		String s = "AaaaABBBBcc&^%adfsfdCCOOkk99876 _haHA";
		
		/*
			方法一:通过charAt()方法拿到字符,比较字符在unicode编码中的位置
		*/
		//定义大写英文字母,小写英文字母,非英文字母的个数
		int uCount = 0,	lCount = 0, oCount = 0;
		
		//循环遍历字符串
		for(int i=0; i<s.length(); i++) {
			//拿到第i个位置上的字符
			char c = s.charAt(i);
			if (c >='A' && c <= 'Z') {//判断字符是不是大写英文字符
				uCount ++;
			}else if(c >= 'a' && c <= 'z') {//判断字符是不是小写英文字符
				lCount ++;
			} else {//非英文字符
				oCount ++;
			}
		}		
		System.out.println("字符串s中包含有大写英文字母"+uCount+"个,小写英文字母"+lCount + "个,非英文字母" +oCount+"个");
		System.out.println();
		
		/*
			方法二:定义大小写英文字母,比较判断
		*/
		String sL = "abcdefghijklmnopqrstuvwxyz";
		String sU = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
		
		//定义大写英文字母,小写英文字母,非英文字母的个数
		int uCount2 = 0, lCount2 = 0, oCount2 = 0;
		
		for(int i=0; i<s.length(); i++) {
			char c = s.charAt(i);
			if(sL.indexOf(c) != -1) {//小写字符串中存在该字符
				lCount2 ++;
			} else if (sU.indexOf(c) != -1) {//大写字符串中存在该字符
				uCount2 ++;
			} else {//大小写英文字母串中都不存在该字符
				oCount2 ++;
			}
		}		
		System.out.println("字符串s中包含有大写英文字母"+uCount2+"个,小写英文字母"+lCount2 + "个,非英文字母" +oCount2+"个");
		System.out.println();
		
		
		/*
			方法三:使用Character中的isLowerCase,isUpperCase判断字符是否为英文以及他们的大小写
		*/
		int uCount3 = 0, lCount3 = 0, oCount3 = 0;
		for(int i=0; i<s.length(); i++) {
			char c = s.charAt(i);
			if(Character.isLowerCase(c)) {//是否为小写英文字符
				lCount3 ++;
			} else if (Character.isUpperCase(c)) {//是否为大写英文字符
				uCount3 ++;
			} else {//都不是
				oCount3 ++;
			}
		}
		System.out.println("字符串s中包含有大写英文字母"+uCount3+"个,小写英文字母"+lCount3 + "个,非英文字母" +oCount3+"个");
		System.out.println();
		
		
		/*
			2.编写一个方法,输出在一个字符串中,指定字符串出现的次数
		*/
		//定义一个字符串
		String str = "sunjavahpjavaokjavajjavahahajavajavagoodjava";
		//定义指定的字符串
		String sToFind = "java";
		int count = 0;//计数
		int index = -1;//开始假设没找到
		
		//sToFind在str中的个数
		//index = str.indexOf(sToFind)字符串java在str中第一次出现的位置
		while((index = str.indexOf(sToFind)) != -1) {
			//字符串长度从index+sToFind.length()开始
			str = str.substring(index + sToFind.length());
			count ++;
		}
		System.out.println(count);//7
		

	}
}
F:\java>javac TestString.java

F:\java>java TestString
字符串s中包含有大写英文字母12个,小写英文字母15个,非英文字母10个

字符串s中包含有大写英文字母12个,小写英文字母15个,非英文字母10个

字符串s中包含有大写英文字母12个,小写英文字母15个,非英文字母10个

7

F:\java>

String类相关方法测试

TestStr1.java

//String类举例1
public class TestStr1{
	public static void main(String[] args) {
		String s1 = "hello";
		String s2 = "world";
		String s3 = "hello";
		System.out.println(s1 == s3);//true
		
		s1 = new String("hello");
		s2 = new String("hello");
		System.out.println(s1 == s2);//fasle
		System.out.println(s1.equals(s2));//true

		/*
			String(char[] value)
			Allocates a new String so that it represents the sequence of characters currently contained in the character array argument.
			String(char[] value, int offset, int count)
			Allocates a new String that contains characters from a subarray of the character array argument.
		*/
		char c[] = {'s','u','n',' ','j','a','v','a'};
		String s4 = new String(c);
		System.out.println(s4);//sun java
		String s5 = new String(c,4,4);
		System.out.println(s5);//java
		
	}
}
F:\java>javac TestStr1.java

F:\java>java TestStr1
true
false
true
sun java
java

F:\java>

TestStr2.java

//String类举例2
public class TestStr2{
	public static void main(String[] args) {
		String s1 = "sun java";
		String s2 = "sun Java";

		System.out.println(s1.charAt(1));//u,返回s1中下标为1的字符
		System.out.println(s2.length());//8,返回s2的长度
		System.out.println(s1.indexOf("java"));//4,返回在s1中第一次找到"java"的位置
		System.out.println(s1.indexOf("Java"));//-1,没有找到返回-1
		System.out.println(s1.equals(s2));//false,比较内容是否相同
		System.out.println(s1.equalsIgnoreCase(s2));//true,比较内容是否相同,忽略大小写
		
		String s = "我是程序员,我在学java";
		String sr = s.replace('我','你');//replace替换
		System.out.println(sr);//你是程序员,你在学java
		
	}
}
F:\java>javac TestStr2.java

F:\java>java TestStr2
u
8
4
-1
false
true
你是程序员,你在学java

F:\java>

TestStr3.java

//String类举例3
public class TestStr3{
	public static void main(String[] args) {
		String s = "Welcome to Java World!";
		String s1 = "   sun java   ";
		System.out.println(s.startsWith("Welcome"));//true,以Welcome开始
		System.out.println(s.endsWith("World"));//false,以World结束
		
		String sL = s.toLowerCase();
		System.out.println(sL);//welcome to java world!,变为小写英文字母
		
		String sU = s.toUpperCase();
		System.out.println(sU);//WELCOME TO JAVS WORLD!,变为大写英文字母
		
		String subS = s.substring(11);
		System.out.println(subS);//Java World!,从字符串第11个位置开始截取
		
		String trimS = s1.trim();
		System.out.println(trimS);//sun java,去空格
		
	}
}
F:\java>javac TestStr3.java

F:\java>java TestStr3
true
false
welcome to java world!
WELCOME TO JAVA WORLD!
Java World!
sun java

F:\java>

TestStr4.java

//String类举例4
public class TestStr4{
	public static void main(String[] args) {
		int j = 1234567;
		String sNumber = String.valueOf(j);		
		System.out.println("j 是" + sNumber.length() + "位数。");
		
		String s = "Mary,f,1976";
		String[] sPlit = s.split(",");
		for(int i=0; i<sPlit.length; i++){
			System.out.println(sPlit[i]);
		}
		
	}
}
F:\java>javac TestStr4.java

F:\java>java TestStr4
j 是7位数。
Mary
f
1976

F:\java>

猜你喜欢

转载自mfcfine.iteye.com/blog/2384537