`

JAVA范例 六)字符串---StringBuffer

 
阅读更多

字符串缓存类StringBuffer 

实例106 创建字符串缓存类

package Chapter06.stringBuffer;
public class StringBufferDemo_01 {
	public static void main(String[] args) {
		String str = "StringBuffer";
		StringBuffer sb, sb1, sb2, sb3;
		sb = new StringBuffer();			// 创建一个空的字符串缓存区
		sb1 = new StringBuffer(50);		// 创建一个指定字符长度的字符串缓存区
		// 创建一个具有指定字符串内容的字符串缓存区
		sb2 = new StringBuffer("大家好");
		sb3 = new StringBuffer(str);
		// capacity()方法的主要作用是获取当前字符串的容量
		// length()方法的主要作有是获取当前字符串的长度
		System.out.println("创建StringBuffer类的方式一:");
		System.out.println("字符串sb的容量为:" + sb.capacity());
		System.out.println("字符串sb的长度为:" + sb.length());
		System.out.println("创建StringBuffer类的方式二:");
		System.out.println("字符串sb1的容量为:" + sb1.capacity());
		System.out.println("字符串sb1的长度为:" + sb1.length());
		System.out.println("创建StringBuffer类的方式三:");
		System.out.println("字符串sb2的容量为:" + sb2.capacity());
		System.out.println("字符串sb2的长度为:" + sb2.length());
		System.out.println("字符串sb3的容量为:" + sb3.capacity());
		System.out.println("字符串sb3的长度为:" + sb3.length());
	}
}

 

实例107 提取单个字符

package Chapter06.stringBuffer;
public class StringBufferDemo_02 {
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer("1234567891011121314");
		String sum = "";
		for (int i = 0; i < sb.length(); i++) {
			if (i % 2 == 0) {
				sum = sum + sb.charAt(i);		// 获取指定位置的字符
			}
		}
		System.out.println("在StringBuffer中下标为偶数的字符串为:" + sum);
	}
}

 

实例108 给指定字符赋值

package Chapter06.stringBuffer;
public class StringBufferDemo_03 {
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer("田田是一个女生");
		System.out.println("原字符串缓存区中的内容如下:\n   " + sb);
		sb.setCharAt(5, '男');		// 给指定下标位置上的字符付新值
		System.out.println("新字符串缓存区中的内容如下:\n   " + sb);
	}
}

 

实例109 插入新的字符

package Chapter06.stringBuffer;
public class StringBufferDemo_04 {
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer("HELLOW");
		System.out.println("原字符串缓存区sb的信息如下:");
		System.out.println("其长度为:" + sb.length());
		System.out.println("其容量为:" + sb.capacity());
		System.out.println("其内容为:" + sb);
		for (int i = 0; i <= sb.length(); i += 2) {// 在原串中的每个字符前加上一个*
			sb.insert(i, '*');// 在指定的位置前插入字符*
		}
		System.out.println("\n新字符串缓存区sb的信息如下:");
		System.out.println("其长度为:" + sb.length());
		System.out.println("其容量为:" + sb.capacity());
		System.out.println("其内容为:" + sb);
	}
}

 

实例110 插入新的字符串 

package Chapter06.stringBuffer;

import java.util.Random;

public class StringBufferDemo_05 {
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer("半江瑟瑟半江红");
		System.out.println("原字符串缓存区sb的信息如下:");
		System.out.println("其长度为:" + sb.length());
		System.out.println("其容量为:" + sb.capacity());
		System.out.println("其内容为:" + sb);
		Random rd = new Random();
		int n = rd.nextInt(sb.length());
		sb.insert(n, " ");			// 在指定的位置上插入一个空格
		sb.insert(n, 12.5);		// 在指定的位置上插入一个double型数据
		sb.insert(n, 10.2f);		// 在指定的位置上插入一个float型数据
		sb.insert(n, 88);			// 在指定的位置上插入一个int型数据
		System.out.println("\n新字符串缓存区sb的信息如下:");
		System.out.println("其长度为:" + sb.length());
		System.out.println("其容量为:" + sb.capacity());
		System.out.println("其内容为:" + sb);
	}
}

 

实例111 获取字符串的子串

package Chapter06.stringBuffer;
public class StringBufferDemo_06 {
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer("This is a dog");
		String str = sb.substring(5);// 返回从指定的下标位置开始截取的子字符串
		String str1 = sb.substring(2, 4);// 返回从指定的两个下标位置之间截取的子字符串
		System.out.println("原字符串缓存区sb的内容为:" + sb);
		System.out.println("从下标为5的位置获取的子串为:" + str);
		System.out.println("从下标为2开始到下标为4结束,获取的子串为:" + str1);
	}
}

 

实例112 删除指定的字符 

package Chapter06.stringBuffer;
public class StringBufferDemo_07 {
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer(
				"Are you come from Japan? No, I come from China");
		sb.deleteCharAt(27);			// 将下标是27位置上的字符也就是逗号删除掉
		System.out.println("删除指定的单个字符后的内容为:\n    " + sb);
		sb.delete(0, 28);			// 将下标为0到28之间的子串全部删除。
		System.out.println("删除指定的子字符串后的内容为:\n    " + sb);
	}
}

 

实例113 倒置字符串 

package Chapter06.stringBuffer;
public class StringBufferDemo_08 {
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer("他谢谢你");
		System.out.println("原字符串缓存区中的内容如下:\n  " + sb);
		sb.reverse();
		System.out.println("调用reverse方法后的内容如下:\n  " + sb);
	}
}

 

实例114 去除重复字符 

package Chapter06.stringBuffer;

import java.util.Random;

public class StringBufferDemo_09 {
	public static void main(String[] args) {
		String str = "";
		Random rd = new Random();
		for (int i = 0; i < 20; i++) {
			str = str + rd.nextInt(10);			// 生成一个由0-9之间的字符组成的字符串,其长度为20
		}
		StringBuffer sb = new StringBuffer(str);	// 根据指定的String对象创建StringBuffer对象
		System.out.println("根据随机生成的字符串创建的字符串缓存区sb的信息如下:");
		System.out.println("其长度为:" + sb.length());
		System.out.println("其容量为:" + sb.capacity());
		System.out.println("其内容为:" + sb);
		for (int i = 0; i < sb.length(); i++) {			// 判断当前字符是否与其他的字符相等
			for (int j = 0; j < sb.length(); j++) {
				if (sb.charAt(i) == sb.charAt(j)) {	// 如果相等,就删除与其相等的字符
					sb.deleteCharAt(j);
				}
			}
		}
		System.out.println("\n将重复的字符去掉后的新字符串缓存区sb的信息如下");
		System.out.println("其长度为:" + sb.length());
		System.out.println("其容量为:" + sb.capacity());
		System.out.println("其内容为:" + sb);
	}
}

 

实例115 检查是否是回文 

package Chapter06.stringBuffer;

import java.util.Scanner;

public class StringBufferDemo_10 {
	public static void main(String[] args) {
		System.out.println("请输入一个字符串:");
		Scanner sc = new Scanner(System.in);
		String str = sc.nextLine();				// 获取从键盘上录入的字符串信息
		StringBuffer sb = new StringBuffer(str);	// 根据该字符串创建一个StringBuffer对象
		sb.reverse();						// 调用reverse方法,将字符串缓存区的内容倒置
		int n = 0;							// 计算相等字符的总数
		for (int i = 0; i < str.length(); i++) {
			// 如果字符串缓存区中每个字符与字符串str中的每个字符相等
			if (str.charAt(i) == sb.charAt(i)) { 
				n++;// n加1
			}
		}
		// 如果所有字符都相等的总数等于字符串str的长度,则str是回文否则不是回文
		if (n == str.length()) { 
			System.out.println(str + "是回文");
		} else {
			System.out.println(str + "不是回文");
		}
	}
}

 

分享到:
评论

相关推荐

    java源码包---java 源码 大量 实例

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    java课程设计报告范例-计算器.doc

    - `StringBuilder`或`StringBuffer`用于构建和操作显示的数字字符串。 - 数学运算通过`Math`类或者自定义的函数来实现,如`sqrt`方法用于开方,除法需要注意除数为零的情况。 - 键盘事件监听器虽然在报告中提到还...

    java范例开发大全(pdf&源码)

    6.2 字符串缓存类StringBuffer 143 实例106 创建字符串缓存类 143 实例107 提取单个字符 144 实例108 给指定字符赋值 145 实例109 插入新的字符 146 实例110 插入新的字符串 146 实例111 获取字符串的子串 147 实例...

    java范例开发大全源代码

     6.2 字符串缓存类StringBuffer 143  实例106 创建字符串缓存类 143  实例107 提取单个字符 144  实例108 给指定字符赋值 145  实例109 插入新的字符 146  实例110 插入新的字符串 146  实例111 ...

    java范例开发大全

    6.2 字符串缓存类StringBuffer 143 实例106 创建字符串缓存类 143 实例107 提取单个字符 144 实例108 给指定字符赋值 145 实例109 插入新的字符 146 实例110 插入新的字符串 146 实例111 获取字符串的子串 147 实例...

    Java范例开发大全 (源程序)

     6.2 字符串缓存类StringBuffer 143  实例106 创建字符串缓存类 143  实例107 提取单个字符 144  实例108 给指定字符赋值 145  实例109 插入新的字符 146  实例110 插入新的字符串 146  实例111 获取...

    Java范例开发大全(全书源程序)

    Java范例开发大全(全书源程序),目录如下: 第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境...

    JAVA经典教材笔记

    - 字符串操作方法:concat、substring、indexOf等。 - 比较字符串:equals与==的区别。 - **引用传递及其应用** - 引用传递的深入理解:传递的是对象地址而非副本。 - 应用场景:修改对象状态。 - **this关键字*...

    Java 2范例入门与提高

    4. **字符串处理**:掌握String类的常用方法,如concat()、substring()、indexOf()等,以及StringBuffer和StringBuilder类的使用。 5. **异常处理**:了解Java的异常处理机制,包括try-catch-finally语句块,异常的...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后...

    Java开发技术大全(500个源代码).

    ArrayString.java 字符串数组 assignTwoDime.java 为二维数组赋值 getMaxElem.java 获取数组中的最大元素 incCapicity.java 演示StingBuffer的容量增长 SortDemo.java 排序示例 travelTwoDime.java 遍历二维...

    java源码包3

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    java源码包2

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    JAVA基础全面知识点

    - **String与StringBuffer**:String是不可变的,适合字符串常量,而StringBuffer在多线程环境下进行字符串拼接时更安全,效率更高。 - **Object与System**:Object是所有Java类的父类,提供了一些基础方法如...

    java-servlet-api.doc

    Java Servlet API说明文档 绪言 这是一份关于2.1版JavaServletAPI的说明文档,作为对这本文档的补充,你可以到http://java.sun.com/products/servlet/index.html下面下载Javadoc格式的文档。 谁需要读这份文档 这份...

    java源码包4

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    Java的编程规范

    - **优化JAVA程序设计和编码**:例如,对于字符串操作,推荐使用`StringBuilder`而非`StringBuffer`,除非确实需要线程安全的特性;尽可能使用静态变量来减少对象的创建次数,提高性能。 #### 代码范例 一个典型的...

Global site tag (gtag.js) - Google Analytics