Java基础知识强化46:StringBuffer类之判断一个字符串是否对称案例
1. 分析:判断一个字符串是否是一个对称的字符串,我们只需要把字符串的第1个字符和最后1个字符,第2个字符和倒数第2个字符,……
比较的次数是长度除以2.
方法1:通过取取索引对应值来进行一一比对
方法2:通过StringBuffer的取反方法reverse获取其逆向值
2. 案例演示:
package cn.itcast_07; import java.util.Scanner; /*
* 判断一个字符串是否是对称字符串
* 例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
*
* 分析:
* 判断一个字符串是否是对称的字符串,我只需要把
* 第一个和最后一个比较
* 第二个和倒数第二个比较
* ...
* 比较的次数是长度除以2。
*/
public class StringBufferTest4 {
public static void main(String[] args) {
// 创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s = sc.nextLine(); // 一个一个的比较
boolean b = isSame(s);
System.out.println("b:" + b); //用字符串缓冲区的反转功能
boolean b2 = isSame2(s);
System.out.println("b2:"+b2);
} public static boolean isSame2(String s) {
return new StringBuffer(s).reverse().toString().equals(s);
} // public static boolean isSame(String s) {
// // 把字符串转成字符数组
// char[] chs = s.toCharArray();
//
// for (int start = 0, end = chs.length - 1; start <= end; start++, end--) {
// if (chs[start] != chs[end]) {
// return false;
// }
// }
//
// return true;
// } public static boolean isSame(String s) {
boolean flag = true; // 把字符串转成字符数组
char[] chs = s.toCharArray(); for (int start = 0, end = chs.length - 1; start <= end; start++, end--) {
if (chs[start] != chs[end]) {
flag = false;
break;
}
} return flag;
}
}
程序的运行结果如下:


Java基础知识强化46:StringBuffer类之判断一个字符串是否对称案例的更多相关文章
- Java基础知识强化之集合框架笔记37:用户登录注册案例
		
1. 登录注册案例分析图解: 2. 用户登录案例 详细分析 和 分包实现: (1)用户登录案例详细分析(面向对象思想) 按照如下的操作,可以让我们更符合面向对象思想: • 有哪些类呢? ...
 - Java基础知识强化72:正则表达式之判断功能(手机号码判断  和  校验邮箱)
		
1. 判断功能: 使用了String类的matches方法,如下: public boolean matches(String regex): 2. 判断手机号码的案例: package cn.it ...
 - Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介
		
1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.Conc ...
 - Java基础知识强化之集合框架笔记04:Collection集合的基本功能测试
		
1. Collection集合的基本功能测试: package cn.itcast_01; import java.util.ArrayList; import java.util.Collectio ...
 - Java基础知识强化之集合框架笔记01:集合的由来与数组的区别
		
1. 集合的由来: 我们学习的是面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储.而要想存储多个对象,就不能是一个基本的变量,而应该 ...
 - Java基础知识强化47:StringBuffer类之StringBuffer的三个面试题
		
1. 面试题:String,StringBuffer,StringBuilder的区别 ? 答:String是字符串内容不可变的,而StringBuffer和StringBuilder是字符串内容长度 ...
 - Java基础知识强化36:StringBuffer类之StringBuffer的概述
		
1. StringBuffer类概述: (1)String的缺陷: 我们如果对字符串进行拼接操作,每次拼接,都会构造一个新的String对象,既耗时,又浪费空间.如下图: (2)StringBuffe ...
 - Java基础知识强化37:StringBuffer类之StringBuffer的构造方法
		
1. StringBuffer的构造方法: (1)StringBuffer(): (2)StringBuffer(CharSequence seq): (3)StringBuffer(int capa ...
 - Java基础知识强化之IO流笔记55:IO流练习之 自定义类模拟LineNumberReader的获取行号功能案例
		
1. 自定义类模拟LineNumberReader的获取行号功能案例 2. 代码实现: (1)MyBufferedReader.java: package cn.itcast_08; import j ...
 
随机推荐
- 结束指定Activity实例代码
			
开通博客两个多月了,一直在看你们的文章 终于发觉伸手党真的很可耻.. 于是就随便写了个Demo来结束伸手党生涯~ Demo很简单:结束指定Activity... 不过也是我的一个小心意嘛.. 不要责怪 ...
 - 侧滑RESideMenu的使用
			
MainTabBarViewController *mainCtrl = [[MainTabBarViewController alloc] init]; LeftViewController *le ...
 - PHP MySQLi
			
PHP MySQLi 简介 PHP MySQLi = PHP MySQL Improved! MySQLi 函数允许您访问 MySQL 数据库服务器. 注释:MySQLi 扩展被设计用于 MySQL ...
 - SQL IN BETWEEN操作符
			
IN 操作符 IN 操作符允许我们在 WHERE 子句中规定多个值. SQL IN 语法 SELECT column_name(s) FROM table_name WHERE column_name ...
 - 软件测试 homework1
			
申明数组变量后,在使用的时候,出现了向上溢出的情况(程序运行过程中出现的),导致最后答案不正确,经过输出数组数据发现错误, 现在在申明数组的时候都会大致估算一下,确认申明什么样的数组不会导致溢出. 在 ...
 - 《Linux内核分析》 week8作业-Linux加载和启动一个可执行程序
			
一.ELF文件格式 ELF(Executable and Linking Format)是x86 Linux系统下常用的目标文件格式,有三种主要类型: 适于连接的可重定位文件,可与其他目标文件一起创建 ...
 - C# AES加密解密算法
			
/// <summary> /// AES加密 /// </summary> /// <param name="encryptStr">明文&l ...
 - c++ 高效文本读写
			
上数据结构课,做project,数据老师要求我们多做测试,而文本文件可以有效记录这些东东,这样我想起了文件的读写,下面是渣渣我个人的一些想法,大神们看见有错的,尽管指出(orz~~~囧,木有人看我的呀 ...
 - jQueryMobile之弹出对话框
			
1:dialog-test.html <!DOCTYPE html> <html lang="en"> <head> <meta char ...
 - Matrix控制平移、旋转和缩放的方法
			
1.setTranslate(float ds,float dy):控制Matrix进行平移.2.setSkew(float kx,float ky,float px,float py):控制Matr ...