java中字符串中的大小写转换

Java中把一个字符串中大写字母转换为小写,小写字母转换为大写

观看提示:

这里提供2中思维,但是第一种是正确的,第二种是错误的;第二种的思维可以了解了解,但是需要注意的是如果某个字符串定义为String类型,那么这个串就不能改变了;如果需要改变,那么应该使用StringBuffer,这个例子也能够很好的说明StringBuffer和String之间的区别!

下面的代码中exChange()能够得到正确的结论,exChange2()不能得到正确的结论,原因就是上面说的:如果某个字符串定义为String类型,那么这个串就不能改变了

  1. //把一个字符串中的大写转为小写,小写转换为大写:思路1
  2. public static String exChange(String str){
  3. StringBuffer sb = new StringBuffer();
  4. if(str!=null){
  5. for(int i=0;i<str.length();i++){
  6. char c = str.charAt(i);
  7. if(Character.isUpperCase(c)){
  8. sb.append(Character.toLowerCase(c));
  9. }else if(Character.isLowerCase(c)){
  10. sb.append(Character.toUpperCase(c));               //有一次面试问append()是哪个类里面的
  11. }
  12. }
  13. }
  14. return sb.toString();
  15. }
  16. //把一个字符串中的大写转为小写,小写转换为大写:思路2
  17. public static String exChange2(String str){
  18. for(int i=0;i<str.length();i++){
  19. //如果是小写
  20. if(str.substring(i, i+1).equals(str.substring(i, i+1).toLowerCase())){
  21. str.substring(i, i+1).toUpperCase();
  22. }else{
  23. str.substring(i, i+1).toLowerCase();
  24. }
  25. }
  26. return str;
  27. }

 

【温馨提示】.

Apache的commons-lang包中有很多我们常用的方法.比如IO操作的中的拷贝整个目录,判断一个字符是不是符合Email的格式,判断一个字符是不是数字型.....

所以千万别什么都自己写.尽量看看在其中是不是已经有现成的方法了.
比如上面这个问题,.就可以这么写【项目中需要有commons-lang这个包,可以去http://commons.apache.org/proper/commons-lang/download_lang.cgi下载】
String str = "aBcD";

System.out.println(StringUtils.swapCase(str));

我看了源码:StringUtils.swapCase(str)这个方法的实现其实跟第一种差不多!下面是apache官方的swapCase这个方法

 

    1. /**
    2. * <p>Swaps the case of a String changing upper and title case to
    3. * lower case, and lower case to upper case.</p>
    4. *
    5. * <ul>
    6. *  <li>Upper case character converts to Lower case</li>
    7. *  <li>Title case character converts to Lower case</li>
    8. *  <li>Lower case character converts to Upper case</li>
    9. * </ul>
    10. *
    11. * <p>For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#swapCase(String)}.
    12. * A {@code null} input String returns {@code null}.</p>
    13. *
    14. * <pre>
    15. * StringUtils.swapCase(null)                 = null
    16. * StringUtils.swapCase("")                   = ""
    17. * StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"
    18. * </pre>
    19. *
    20. * <p>NOTE: This method changed in Lang version 2.0.
    21. * It no longer performs a word based algorithm.
    22. * If you only use ASCII, you will notice no change.
    23. * That functionality is available in org.apache.commons.lang3.text.WordUtils.</p>
    24. *
    25. * @param str  the String to swap case, may be null
    26. * @return the changed String, {@code null} if null String input
    27. */
    28. public static String swapCase(String str) {
    29. if (StringUtils.isEmpty(str)) {
    30. return str;
    31. }
    32. char[] buffer = str.toCharArray();
    33. for (int i = 0; i < buffer.length; i++) {
    34. char ch = buffer[i];
    35. if (Character.isUpperCase(ch)) {
    36. buffer[i] = Character.toLowerCase(ch);
    37. } else if (Character.isTitleCase(ch)) {
    38. buffer[i] = Character.toLowerCase(ch);
    39. } else if (Character.isLowerCase(ch)) {
    40. buffer[i] = Character.toUpperCase(ch);
    41. }
    42. }
    43. return new String(buffer);
    44. }
时间: 2024-10-14 08:43:56

java中字符串中的大小写转换的相关文章

【转】Java中字符串中子串的查找共有四种方法(indexof())

原文网址:http://wfly2004.blog.163.com/blog/static/1176427201032692927349/ Java中字符串中子串的查找共有四种方法,如下:1.int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引. 2.int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引. 3.int lastIndexOf(String st

Java中字符串中子串的查找共有四种方法(indexof())

Java中字符串中子串的查找共有四种方法(indexof()) Java中字符串中子串的查找共有四种方法,如下:1.int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引. 2.int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引. 3.int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引. 4.int las

QT中字符串QString类型的转换

把QString转换为 double类型 方法1.QString str="123.45"; double val=str.toDouble(); //val=123.45 方法2.很适合科学计数法形式转换 bool ok; double d; d=QString("1234.56e-02").toDouble(&ok); //ok=true;d;12.3456. 把QString转换为float形 1.QString str="123.45&qu

Java提取字符串中的手机号

java通过正则表达式提取字符串中的手机号,简单快速方便,能提取多个手机号 public String getTelnum(String sParam){ if(sParam.length()<=0) return ""; Pattern pattern = Pattern.compile("(1|861)(3|5|8)\\d{9}$*"); Matcher matcher = pattern.matcher(sParam); StringBuffer bf

Java 去除字符串中的空格和其他字符

直接上代码了. <span style="font-size:18px;">import java.util.regex.Matcher; import java.util.regex.Pattern; /** * java 去除字符串中的空格和其他字符 * @author YYBJ * @date 2014-10-19 */ public class CleanString { public static String replaceBlank(String str) {

java判断字符串中是否包含汉字

原文:java判断字符串中是否包含汉字 源代码下载地址:http://www.zuidaima.com/share/1550463517428736.htm package com.zuidaima.util; /** *@author www.zuidaima.com **/ public class test { public static void main(String[] args) { String a = "中国China"; for (int i=a.length();

java从字符串中提取数字

1.做一下操作时会一般会用到提取数字操纵: a.列表中有翻页,当新添加的数据不是放在第一条或者最后一条时,需要翻页并循环找到对应的那条数据 b.当新添加的数据放在第一条或者最后一条时,则不需要翻页,只需要直接进入该页面然后直接找到第一条或者最后一条数据即可. 2.例子: 界面: javs代码: /** * java从字符串中提取数字 * str:传递过来的字符串 */ public static List<String> getNUm(String str){ str.trim(); //St

java统计字符串中字符及子字符串个数

import java.util.Scanner;public class Counter { static Scanner scanner = new Scanner(System.in); public static void count(String s) { int low, upper, num, others; low = upper = num = others = 0; for (int i = 0; i < s.length(); i++) { if (Character.is

Java中字符串中子串的查找方法

Java中字符串中子串的查找共有四种方法: int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引. int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引. int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引. int lastIndexOf(String str, int startIndex) :从指定的

java截取字符串中的数字

java从字符串中提取数字 随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取出来呢?大致有以下几种方法,正则表达式,集合类,还有就是String类提供的方法. 1 String类提供的方法: package 测试练习; import java.util.*; public class get_StringNum { /**  *2012.6.2  */ public static v