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>