java 12-5 StringBuffer的几个案例
1、
把数组拼接成一个字符串
public class StringBufferTest2 {
public static void main(String[] args) {
//定义一个数组
int[] arr = {12,21,33,9,2};
//方式1:定义功能,使用String做拼接
String s1 = arrayToString(arr);
System.out.println("String拼接的方法:"+s1);
//方式2:定义功能能,使用StringBuffer做拼接
String s2 = arrayToString2(arr);
System.out.println("StringBuffer拼接的方法:"+s2);
}
public static String arrayToString(int[] arr) {
//定义一个[的字符串
String s = "[";
//进行数组的遍历以及转换为字符串
for(int x=0;x<arr.length;x++){
if(x == arr.length-1){
s += arr[x]+"]";
}
else{
s += arr[x]+",";
}
}
return s;
}
public static String arrayToString2(int[] arr) {
//定义一个"["的StringBuffer的缓冲区
StringBuffer sb = new StringBuffer();
sb.append("[");
//进行数组的遍历,以及转换为StringBuffer缓冲区
for(int x=0;x<arr.length;x++){
if(x == arr.length-1){
sb.append(arr[x]);
}
else{
sb.append(arr[x]).append(",");
}
}
sb.append("]");
//StringBuffer 转换成 String
return sb.toString();
}
}
2、
把字符串反转
import java.util.Scanner;
public class StringBufferTest3 { public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入想要反转的数据");
String str = sc.nextLine(); //调用方法1 reverse1
String result = reverse1(str);
System.out.println("反转后的数据:"+result); //调用方法2 reverse2
String result2 = reverse2(str);
System.out.println("反转后的数据:"+result2);
} //方式1:用String的方法
public static String reverse1(String s){ //定义一个[的字符串
String s1 = ""; //把字符串转成数组
char[] ch = s.toCharArray(); //进行数组的元素遍历以及字符串的拼接
for(int x = ch.length-1;x >= 0;x--){ if(x == 0){
s1 += ch[x];
}
else{
s1 += ch[x];
}
}
return s1;
} //方式2,利用StringBuffer的反转方法
public static String reverse2 (String s){ //把输入的String类型转换为StringBuffer类型
//StringBuffer buffer = new StringBuffer(s); //进行StringBuffer的反转功能:
//public StringBuffer reverse()
//return buffer.reverse().toString(); //简洁版
return new StringBuffer(s).reverse().toString();
} }
3、
判断一个字符串是否是对称字符串
分析:
两种方法可以完成:
A:用string来完成:
先把字符串改成数组,再对里面的数据进行, 一个一个地对比,最后的和第一个,倒二和第二....
B:用StringBuffer来完成:
直接倒转来对比原值
C:分别创建方法,两个必须确认的值:
a:返回类型:boolean
b:参数列表:String
import java.util.Scanner;
public class StringBufferTest4 { public static void main(String[] args) {
//创建键盘输入
Scanner sc = new Scanner(System.in);
System.out.println("请输入你想要判断的字符串:");
String str = sc.nextLine(); //调用第一种方法
boolean b1 = symmetry1(str);
System.out.println("这个字符串是否对称:"+b1); //调用第一种方法2
boolean b2 = symmetry2(str);
System.out.println("这个字符串是否对称:"+b2); //调用第二种方法
boolean b3 = symmetry2(str);
System.out.println("这个字符串是否对称:"+b3);
} //方式1:用string的方法来一个一个对比
public static boolean symmetry1(String s){
//把字符串改成数组
char[] c = s.toCharArray();
//进行比较,定义2个变量:start和end,分别从两端开始对比
for(int start = 0, end = c.length-1;start < end ; start ++,end--){
if(c[start] != c[end]){//进行判断
return false; }
}
return true;
} //方式1的另外一种方式:
public static boolean symmetry2(String s){
//定义一个boolean值
boolean flog = true; //把字符串改成数组
char[] c = s.toCharArray(); //进行比较,定义2个变量:start和end,分别从两端开始对比
for(int start = 0, end = c.length-1;start < end ; start ++,end--){
if(c[start] != c[end]){//进行判断
flog = false;
break;
}
}
return flog;
} //方式2 利用StringBuffer的反转功能
public static boolean symmetry3(String s){
return new StringBuffer(s).reverse().toString().equals(s);
//先从String变为StringBuffer类型,再对它进行反转,再变回string类型,再让此时得到的字符串与原来的对比里面的数据是否一样
}
}
java 12-5 StringBuffer的几个案例的更多相关文章
- final修饰和StringBuffer的几个案例(拼接,反转,对称操作)
final关键字修饰时如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改:如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象,但引用变量不能变,引用变量所指向的对象中的内容还 ...
- java学习笔记 --- StringBuffer类
1.定义:字符串缓冲区,即它是一个容器,容器中可以装很多字符.并且能够对其中的字符进行各种操作. StringBuffer的特点: 1.是一个字符串缓冲区,其实就是一个容器. 2.长度是可变,任意类型 ...
- Java中的StringBuffer
Java中的StringBuffer /** * */ package com.you.model; /** * @author YouHaidong * */ public class StrFoo ...
- Java 12 正式发布,8大新特性
自 2 月 7 日开始,Java/JDK 12 就进入了 RC 阶段.按照发布周期,美国当地时间 3 月 19 日,也就是北京时间 20 号 Java 12 正式发布了! 1.Shenandoah:低 ...
- 尝鲜Java 12新特性:switch表达式
Java 12将在两个月后(2019/3/19)发布,现已进入RDP1阶段,确定加入8个JEP.其中对Java语法的改进是JEP 325: switch表达式.于是我迫不及待,提前感受一下更先进的语言 ...
- [java,2017-05-16] java中清空StringBuffer的方法以及耗费时间比较
java中清空StringBuffer的方法,我能想到的有4种: 1. buffer.setLength(0); 设置长度为0 2. buffer.delete(0, buffer.length() ...
- Java面向对象之多态(来源于身边的案例)
2019年1月3日 星期四 Java面向对象之多态(来源于身边的案例) 1. 为什么要用多态? 1.1 多态是面向对象的三大特性之一 1.2 多态是基于接口设计的模型 1.3 多态具有横向扩展特性 1 ...
- 5分钟了解Java 12 八大新特性
Java 12 终于发布了,我们一起来看一看 Java 12 中的新特性.通过本文可以在5分钟内快速了解 Java 12 新特性. 1 Switch 表达式 使用Java 12,switch不仅可以作 ...
- .Net Core 2.2与Java 12性能对比
我发现基准游戏(https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/csharp.html)是一套非常好的基准测试. ...
- Java常用函数式接口--Predicate接口使用案例
Java常用函数式接口--Predicate接口使用案例 该方法可以使用and来优化: 调用:
随机推荐
- (三)play之yabe项目【数据模型】
(三)play之yabe项目[数据模型] 博客分类: 框架@play framework 创建项目 play new yabe What is the application name? [yab ...
- 胖AP(1602i)与苹果设备之间的问题总结
问题现象: 苹果设备(5GHz)连接不稳定,表现为时断时续,或者加入无线的时候一直加入不进去. 有些2.4GHz设备会在几个AP之间相互跳. 分析: 1. 先说苹果设备,它既支持2.4G 也支持5G, ...
- has_many :through VS has_and_belongs_to_many
user role has_and_belongs_to_many role.destroy: 关联表user_roles先删除记录,再role删除. has_many :through user. ...
- GridView自带的分页功能实现
要实现GrdView分页的功能操作如下:1.更改GrdView控件的AllowPaging属性为true.2.更改GrdView控件的PageSize属性为 任意数值(默认为10)3.更改GrdVie ...
- 深入底层逆向分析TDC‘s keygenme(手脱压缩壳)
系统 : Windows xp 程序 : TDC‘s keygenme 程序下载地址 :http://pan.baidu.com/s/1gdWyt6z 要求 : 脱壳 & 注册机编写 使用工具 ...
- STL--双端队列(deque)和链表(list)
双端队列(deque容器类): #include<deque>与vector 类似,支持随机访问和快速插入删除,它在容器中某一位置上的操作所花费的是线性时间. 与vector不同的是:de ...
- IOS开发中(null)与<null>的处理
不小心在开发过程中,得到了(null)以及<null>的返回值,找了好长时间只找到了一个关于<null>的. 由于要根据返回值进行判断,做出必要反应,因此必须知道返回值所代表的 ...
- C# 零散知识 扩展方法 类型约束
今天看到这么一段代码,我看下面调用了NotifyPropertyChanged定义了两个参数,但是调用的时候只写了一个参数.后来查了下,原来这个是扩展方法的用法, 就是说给T扩展了一个方法Notify ...
- [docker] 管理docker容器中的数据
之前我们介绍了Docker的基本概念(前面的没翻译...),了解了如何使用Docker镜像进行工作,并且学习了网 络和容器之间的链接.这一节我们将讨论如何管理容器中及容器之间的数据. 我们将查看下面两 ...
- javascript 依次输入自动定焦框
<html> <head> <script type="text/javascript"> function moveNext(object,i ...