黑马程序员技术交流社区

标题: 关于字符串操作的几个小编程题 [打印本页]

作者: Coolman    时间: 2015-8-28 22:57
标题: 关于字符串操作的几个小编程题
本帖最后由 Coolman 于 2015-8-29 21:18 编辑

A. 自定义方法,实现两个字符串的比较,完全相等返回true
  1. // 自定义方法实现两个字符串的比较,完全相等返回 true
  2.         public static boolean isEquals(String str1, String str2) {
  3.                 // 将两个字符串分别转换成字符数组
  4.                 char[] array1 = str1.toCharArray();
  5.                 char[] array2 = str2.toCharArray();
  6.                 // 比较两个字符数组的长度,如果相等,继续比较数组元素
  7.                 if (array1.length == array2.length) {
  8.                         // 遍历字符数组
  9.                         for (int i = 0; i < array1.length; i++) {
  10.                                 // 比较当前索引元素是否相等,不相等返回 false,停止继续比较
  11.                                 if (array1[i] != array2[i]) {
  12.                                         return false;
  13.                                 }
  14.                         }
  15.                         // 字符数组遍历完毕,每个元素值都相等,返回 true
  16.                         return true;
  17.                 }
  18.                 // 当字符数组长度不同时,直接返回 false
  19.                 return false;
  20.         }
复制代码
B. 将字符串中的字符进行大小写互转
  1. // 将字符串中的英文字符进行大小写互转
  2.         public static String toAnotherCase(String string) {
  3.                 // 将字符串转换成字符数组
  4.                 char[] array = string.toCharArray();
  5.                 // 遍历字符数组,根据判断ASCII值判断其大小写状态并进行转换
  6.                 for (int i = 0; i < array.length; i++) {
  7.                         // 大写字母 --> 小写字母
  8.                         if (array[i] >= 65 && array[i] <= 90) {
  9.                                 array[i] += 32;
  10.                         } else if (array[i] >= 97 && array[i] <= 122) { // 小写字母 --> 大写字母
  11.                                 array[i] -= 32;
  12.                         } // 其他字符不处理
  13.                 }
  14.                 // 将字符数组转换成字符串
  15.                 String anotherCase = String.valueOf(array);
  16.                 // 返回转换后的字符串
  17.                 return anotherCase;
  18.         }
复制代码
C. 判断一个字符串是否是回文。例如 abcba  aba
      要求字符串长度必须是奇数,不能少于3个字符
      字符串最远端字符判断相等
  1. // 判断一个字符串是不是回文
  2.         public static boolean isPalindrome(String string) {
  3.                 // 限制判断字符的长度不小于 3 个字符,且必须是奇数
  4.                 if (string.length() >= 3 && string.length() % 2 == 1) {
  5.                         // 将字符串转换成字符数组
  6.                         char[] array = string.toCharArray();
  7.                         // 从字符数组索引的头尾两端取元素判断是否相等,不相等直接返回 false
  8.                         for (int min = 0, max = array.length - 1; min < max; min++, max--) {
  9.                                 if (array[min] != array[max]) {
  10.                                         return false;
  11.                                 }
  12.                         }
  13.                         // 判断完毕没有不相等的元素则返回 true
  14.                         return true;
  15.                 }
  16.                 // 字符长度小于3,直接返回 false
  17.                 return false;
  18.         }
复制代码




作者: 三井寿    时间: 2015-8-28 23:06
我算是第一个么,题目太长了表示看起来亚历山大啊。
作者: 绅士痞子    时间: 2015-8-28 23:33
我算是第二个,题目太长了表示看起来亚历山大啊。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2