Java基础知识(六)& 字符串

六 字符串

6.1 String字符串

1、String类对象创建

定义String类对象格式:**
1)String 字符串变量名=“字符串常量”;
2)String 字符串变量名=new String(字符串常量);
3)String 字符串变量名;
字符串变量名=“字符串常量”;

public class StringDemo {

	public static void main(String[] args) {
		String s1="java is beautiful";//字符串变量
		
		String s2=new String("hello java!");
		
		String s3;
		s3="JAVA";
		  
		System.out.println(s1);
		System.out.println(s2);
		System.out.println(s3);

	}

}

2、String类对象的常用基本方法

字符串变量通过点“.”方式调用,即字符串变量.方法名()

1、获取字符串长度方法
length()
2、字符串拼接
concat()
3、字符串比较
equals()
4、字符串代替
replace()
5、去掉字符串首尾空格,返回字符串
trim()
6、返回字符串对象
toString()
7、返回字符串中所有字符转变为大写的新字符串
toUpperCase()
8、获取给定的index处字符串
charAt()
    
public class StringDemo {

	public static void main(String[] args) {
		String s1="java is beautiful";//字符串变量
		
		String s2=new String("hello java!");
		
		String s3;
		s3="JAVA";
		
		String s4 =" java and python ";
		  
		System.out.println(s1);
		System.out.println(s2);
		System.out.println(s3);
		System.out.println("========================");
		//获取字符串的长度
		System.out.println("s1的长度为:"+s1.length());
		
		//字符串拼接
		System.out.println(s1.concat(s2));//s2拼接到s1中
		
		//字符串比较
		System.out.println("JAVA".equals(s3));
		
		//两个字符串比较,忽略大小写
		System.out.println("java".equalsIgnoreCase(s3));
		
		//字符串代替 replace
		System.out.println(s1.replace("java", "JAVA"));
		
		//去掉字符串首尾空格,返回字符串
		System.out.println(s4.trim());
		
		//返回字符串对象
		System.out.println(s4.toString());
		
		//返回字符串中所有字符转变为大写的新字符串
		System.out.println(s4.toUpperCase());
		
		//获取给定的index处字符串
		System.out.println(s4.charAt(1));

	}

}

运行结果:
java is beautiful
hello java!
JAVA
========================
s1的长度为:17
java is beautifulhello java!
true
true
JAVA is beautiful
java and python
 java and python 
 JAVA AND PYTHON 
j

3、遍历字符串中的所有字符,并打印

public class BianliDemo {

	public static void main(String[] args) {
		String s1="java is beautiful";
		for(int i=0;i<s1.length();i++) {
			System.out.print(s1.charAt(i));
		}

	}

}

运行结果:
java is beautiful

4、单词计数案例

方法一:

import java.util.Scanner;
 
// 统计单词的个数。
class CountWords {
    public static void main(String[] args) {
    	
        // 输入
        Scanner sc = new Scanner(System.in);
        // 输入一行(可以接收一行的数据)
        String str = sc.nextLine();
        // 默认有0个单词
        int wordcount=0;
        // 从第一个到最后一个字符
        for(int i=0;i<str.length();i++)
        {
            // 如果遇到了空格表示一个单词的结束。
            if(str.charAt(i)==' ')
            {
                // 累加
            	wordcount++;
            }
        }
        // 输出字符串
        System.out.println(str);
        // 输出单词的个数。
        System.out.println(wordcount+1);
    }
}



方法二:
import java.util.Scanner;


public class WordCount {

	public static void main(String[] args) {
		//计数器
		int count = 0 ;
		System.out.println("输入一系列以空格隔开的字符串");
		Scanner sc = new Scanner(System.in);
		//忽略字符串头尾的空白
		String str = sc.nextLine().trim();
		String[]  words = str.split(" ");
		for(int i = 0 ; i < words.length; i++) {
			if(!words[i].equals("")) {
                //不为空格时才计数(即只计算单词数)
				count++;
			}
		}
		System.out.println("一共有"+count+"个单词");
		sc.close();
	}

}

6.2 StringBuffer类

当String类字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题线程安全的可变字符序列。

1、StringBuffer类对象创建

定义StringBuffer类对象格式:
1)StringBuffer 字符串变量名 =new StringBuffer();//默认长度16字符
2)StringBuffer 字符串变量名 =new StringBuffer(缓冲区长度);
3)StringBuffer 字符串变量名 =new StringBuffer(“字符串常量”);

public class StringBufferDemo {

	public static void main(String[] args) {
		
		StringBuffer s2 =new StringBuffer();//默认长度16字符
		StringBuffer s3 =new StringBuffer(50);//长度为50
		StringBuffer s4 =new StringBuffer("i like java");
		
		System.out.println("s2="+s2);
		System.out.println("s3="+s3);
		System.out.println("s4="+s4);
		
		

	}

}


public class StringBufferDemo {

	public static void main(String[] args) {
		
		StringBuffer s1 =new StringBuffer();//默认长度16字符
		
		System.out.println("s1的缓冲区长度:"+s1.capacity());//查看对象缓冲区长度
		System.out.println("s1的长度:"+s1.length());
		
		StringBuffer s2 =new StringBuffer(50);//缓冲区长度为50
		System.out.println("s2的缓冲区长度:"+s2.capacity());//查看对象缓冲区长度
		System.out.println("s2的长度:"+s2.length());
		
		
		StringBuffer s3 =new StringBuffer("i like java python");
		System.out.println("s3的缓冲区长度:"+s3.capacity());//查看对象缓冲区长度  16+11=27
		System.out.println("s3的长度:"+s3.length());
		
		
		

	}

}

运行结果:
s1的缓冲区长度:16
s1的长度:0
s2的缓冲区长度:50
s2的长度:0
s3的缓冲区长度:34//16+18
s3的长度:18

2、StringBuffer类成员方法

1append():添加、增加
   
    public class ChengYuanWay {
	public static void main(String[] args) {
	
		//append:添加
		StringBuffer S1 =new StringBuffer("i like java");
		
		System.out.println("原来的S1:"+S1);
		//append()  :S1.append()
		S1.append(",html,web");
		System.out.println("添加后的S1:"+S1);
		

	}

}

注意:该方法多次重写
    
   public class ChengYuanWay {

	public static void main(String[] args) {
		
		//append:添加
		StringBuffer S1 =new StringBuffer("i like java");
		
		System.out.println("原来的S1:"+S1);
		//append()  :S1.append()
		S1.append(",html,web").append(",python").append(",php");
		System.out.println("添加后的S1:"+S1);
		

	}

}
public class ChengYuanWay {

	public static void main(String[] args) {
		
		//append:添加
		StringBuffer S1 =new StringBuffer("i like java");
		
		System.out.println("原来的S1:"+S1);
		//append()  :S1.append()
		S1.append(",html,web").append(",python").append(",php语言").append(12.67);
		System.out.println("添加后的S1:"+S1);
		

	}

}



2insert():在指定的索引上,插入字符串
    
public class InsertDemo {

	public static void main(String[] args) {
		StringBuffer S=new StringBuffer("abcd  祖国  ");
		System.out.println("原来的S:"+S);
		
		//insert添加元素  1)找到位置?  找到位置之后在这个位置添加我们要添加的元素
		
		S.insert(0, "F").insert(3, "G");//a索引0:0就是它的位置
		
		System.out.println("添加元素后的S:"+S);

	}
}



append()insert()区别:
   a、append()只能在字符串的结尾添加,而insert()在指定的索引上,插入字符串
    
   b、insert()两个参数,第一个参数索引(位置),第二参数你要添加什么值  通过索引值找到位置才能添加
    
    

3deleteCharAt(int index):删除指定索引的值
    
4delete(int start,int end)删除此序列的子字符串中的字符,子串开始于指定start并延伸到字符索引end - 1
     
5)replace:替换   
    
6)reverse:反转
    
7)substring:截取
public class StringBufferDemo {

	public static void main(String[] args) {
		// replace:替换
		
		StringBuffer s =new StringBuffer();
		s.append("hello java");
		System.out.println(s);
		System.out.println(s.length());
		
		s.replace(6, 10, "html");
		System.out.println("替换之后的s:"+s);
		
		
		//反转:reverse()
		
		StringBuffer s1=new StringBuffer();
		s1.append("我爱你");
		System.out.println(s1);
		
		s1.reverse();
		System.out.println("反转之后的s1:"+s1);
		
		
		//截取:substring
		
		StringBuffer s2=new StringBuffer();
		s2.append("java").append(" html").append(" php").append(" web").append("python");
		System.out.println(s2);
		
		String s3= s2.substring(4, 10);
		System.out.println(s3);
		
		
		
	

	}

}

3、统计大、小写以及数字出现次数案例

案例:键盘输入字符串(absDGHS345;;;),统计该字符串中的大写字母、小写字母、数字字符出现的次数

import java.util.Scanner;

public class CountStringDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Scanner sc =new Scanner(System.in);
		System.out.println("请输入一串字符串:");
		
		String str=sc.next();
		
		int bigc=0;
		int smallc=0;
		int numc=0;
		
		for(int i=0;i<str.length();i++) {
			
			char c=str.charAt(i);
			
			if(c>='a' &&c<='z') {
				smallc++;
				
			}
			else if (c>='A' &&c<='Z') {
				bigc++;
				
			}
			else if (c>='0' &&c<='9') {
				numc++;
				
			}
			
			
		}
		System.out.println("大写字母有"+bigc+"个");
		System.out.println("小写字母有"+smallc+"个");
		System.out.println("数字有"+numc+"个");

	}

}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值