posts - 206,  comments - 26,  views - 17万
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

String  的常用函数

1.构造函数:

 

复制代码
 1 //(1)public String() : 空参构造函数
 2 
 3 String s = new String();
 4 s = "helloworld";
 5 
 6 //(2)public String(byte[] bytes) : 把给定的字节数组 转换成字符串
 7 
 8 byte[] bys = {'a',98,99,100,101};
 9 String s = new String(bys);
10 
11 System.out.println(s);
12 
13 //(3)public String(byte[] bytes,int startIndex,int length) : 把给定的字节数组的一部分,转换成字符串
14 
15 byte[] bys = {'a',98,99,100,101};
16 
17 String s = new String(bys, 1, 2);
18 
19 System.out.println(s);
20 
21 
22 //(4)public String(char[] value) : 把给定的字符数组 转换成字符串
23 
24 char[] chs = {97,'b','c','d','e'};
25 String s = new String(chs);
26 
27 System.out.println(s);
28 
29 
30 //(5)public String(char[] value,int startIndex,int length) :把给定的字符数组的一部分, 转换成字符串
31 
32 char[] chs = {97,'b','c','d','e'};
33 
34 String s = new String(chs, 1, 2);
35 System.out.println(s);
36 
37 
38 //(6)public String(String original) : 把字符串 转换成 字符串
39 
40 String s = new String("hello");
复制代码

 

2.判断函数

复制代码
1 //(1)boolean equals(Object obj) : 把给定的字符串与该字符串比较
2 //(2)boolean equalsIgnoreCase(String str) : 比较两个字符串是否一致(忽略大小写)
3 //(3)boolean contains(String str) : 该字符串中 是否包含 给定的字符串
4 //(4)boolean startsWith(String str) : 判断该字符串是否以 给定的字符串开始
5 //(5)boolean endsWith(String str) : 判断该字符串是否以 给定的字符串结束
6 //(6)boolean isEmpty() : 判断字符串是否为空    ("")
View Code
复制代码

 


3.获取函数

复制代码
1 //int length() : 获取字符串的长度
2 //char charAt(int index) : 获取该字符串中指定位置对应的字符 
3 //int indexOf(int ch) : 获取给定的字符在该字符串中第一次出现的位置
4 //int indexOf(String str) : 获取给定的字符串在该字符串中第一次出现的位置
5 //int indexOf(int ch,int fromIndex): 从指定位置开始, 获取给定的字符在该字符串中第一次出现的位置
6 //int indexOf(String str,int fromIndex) : 从指定的位置开始, 获取给定的字符串在该字符串中第一次出现的位置
7 //String substring(int start) : 从指定位置开始, 截取该字符串, 返回一个新的字符串 (包含start位置的元素)
8 //String substring(int start,int end) : 从指定位置开始, 到指定位置结束,获取该字符串, 返回一个新的字符串(包左不包右)
View Code
复制代码

 


4.转换函数

 

复制代码
 1 //byte[] getBytes() : 把该字符串 转换成 字节数组
 2 
 3 //String s = "abcde";
 4 //char[] toCharArray() : 把该字符串转换成 字符数组
 5 //static String copyValueOf(char[] chs) : 把字符数组 转换成 字符串
 6 
 7 //static String valueOf(char[] chs) : 把字符数组 转换成 字符串
 8 
 9 //static String valueOf(int i)基本类型 : 把int数据类型的数据 转换成字符串
10 //String toLowerCase() : 把该字符串 转换成 小写字母
11 //String toUpperCase() : 把该字符串转换成 大写字母
12 //String concat(String str) : 把该字符串与给定的字符串连接起来, 返回一个新的字符串 (给定的字符串在后面) 
View Code
复制代码

 

 

 

替换函数

1 //String replace(char old,char new) : 在该字符串中,使用新的字符 替代老的字符
2 //String replace(String old,String new) : 在该字符串中, 使用新的字符串 替代 老的字符串
View Code

 


截取函数

1 //String[] split(String regex)
View Code

 


去除字符串两端空格

//String trim()
View Code

 


按字典顺序比较两个字符串

1 //int compareTo(String str)
2 //int compareToIgnoreCase(String str)
View Code

 

 

Scanner :获取 键盘输入的数据的 封装类

  常用方法:

   String: 获取字符串数据
       public String nextLine()
   int: 获取int数据
       public int nextInt()

复制代码
1 Scanner sc = new Scanner(System.in);
2 String s1 = sc.nextLine();
3 String s2 = sc.nextLine();    
4 int s3 = sc.nextInt();
5 int s4 = sc.nextInt();    
6 System.out.println(s1);
7 System.out.println(s2);
8 System.out.println(s3);
9 System.out.println(s4);
View Code
复制代码

 

结论:

一个Scanner对象

先获取String再获取String可行,先获取String再获取int可行,先获取int再获取int可行

先获取int再获取String不可行 , 如果要先获取int,再获取String ,可以创建多个Scanner对象来完成操作--代码如下:

复制代码
1   Scanner sc = new Scanner(System.in);
2   int num = sc.nextInt();
3   Scanner sc2 = new Scanner(System.in);
4   String str = sc2.nextLine();
5   System.out.println(num);
6   System.out.println(str);
View Code
复制代码

 

先获取int再获取String不可行--代码如下:

复制代码
1   Scanner sc = new Scanner(System.in);
2   int num = sc.nextInt();
3   String str = sc.nextLine();
4   System.out.println(num);
5   System.out.println(str);
View Code
复制代码

 


练习题:

1. String s1 = new String(“abc”);
String s2 = “abc”;
   有区别吗? 请说出理由
   有
    s1创建的时候,在内存中 创建了2个对象
    s2创建的时候,在内存中 创建了1个对象

2.  请写出程序的运行结果

复制代码
 1 String s1 = new String("hello");
 2 String s2 = new String("hello");
 3 String s3 = s1;
 4 
 5 System.out.println(s1 == s2); // false
 6 System.out.println(s1.equals(s2)); // true
 7 
 8 System.out.println(s1 == s3); // true
 9 System.out.println(s1.equals(s3)); // true
10 
11 String s4 = "hello";
12 String s5 = "hello";
13 
14 System.out.println(s4 == s5); // true
15 System.out.println(s4.equals(s5));// true
View Code
复制代码

 



3. 请写出程序的结果

复制代码
String s6 = "hello";
String s7 = "world";
String s8 = "helloworld";
String s9 = s6+s7;
String s10 = "hello" + "world";
System.out.println(s8 == s9); // false
System.out.println(s8.equals(s9));//true    
System.out.println(s8 == s10); // true
System.out.println(s8.equals(s10)); //true
View Code
复制代码

 

如果操作的常量,先看常量池中有没有,有,直接使用,没有,构建出来
如果操作的变量,不看常量池有没有, 直接构建

练习 代码仅供参考

// 遍历获取字符串中的每一个字符

复制代码
1 Scanner sc=new Scanner(System.in);
2 System.out.println("请输入要遍历的字符串");
3 String str=sc.nextLine();
4 for (int i = 0; i < str.length(); i++) {
5     System.out.println(str.charAt(i));
6 }
View Code
复制代码

 


练习(统计大写小写数字的个数)

复制代码
 1 Scanner sc = new Scanner(System.in);
 2 System.out.println("请输入要统计的字符串");
 3 String str=sc.nextLine();
 4 int big=0;
 5 int small=0;
 6 int num=0;
 7 char[] chs=str.toCharArray();
 8 for (int i = 0; i < chs.length; i++) {
 9     int x=chs[i];
10     if(x>='A'&&x<='Z'){
11         big++;
12     }else if(x>='a'&&x<='z'){
13         small++;
14     }else if(x>='0'&&x<='9'){
15         num++;
16     }
17 }
18 System.out.println("大写:"+big+",小写:"+small+",数字:"+num);                
View Code
复制代码

 


练习(把字符串的首字母转成大写,其余为小写)

复制代码
 1 Scanner sc=new Scanner(System.in );
 2 
 3 System.out.println("请输入一个字符串");
 4 String str=sc.nextLine();
 5 
 6 String start=str.substring(0, 1);
 7 String end=str.substring(1);
 8 
 9 str=start.toUpperCase()+end.toLowerCase();
10 
11 System.out.println(str);
View Code
复制代码

 


练习(获取一个字符串中指定子串出的次数)

复制代码
 1 //输入原始字符串
 2 Scanner sc=new Scanner(System.in);
 3 System.out.println("请输入字符串");
 4 String originalStr=sc.nextLine();
 5 
 6 //输入指定字符串(分割字符串)
 7 System.out.println("请输入字指定符串");
 8 String spliStr=sc.nextLine();
 9 int count=0;
10 //数组长度
11 int length=originalStr.split(spliStr).length;
12 
13 if(originalStr.equals(spliStr)){
14     count=1;
15 }else if(originalStr.endsWith(spliStr)){
16     count=length;
17 }else {
18     count=length-1;
19 }    
20 System.out.println(originalStr+"中有:"+count+"个"+spliStr);
View Code
复制代码

 


练习(对字符串中字符进行自然顺序排序)"basckd" – 结果"abcdks"

 

复制代码
1 //String str="才的饿爱吧";
2 //String str="cbdaef";
3 String str="54321";
4 char[] chs=str.toCharArray();
5 Arrays.sort(chs);
6 
7 str=String.valueOf(chs);
8 System.out.println(str);
View Code
复制代码

 

posted on   努力--坚持  阅读(213)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示