java字符大小写转换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java字符大小写转换相关的知识,希望对你有一定的参考价值。
public class zfcyfpublic static void main(String[] args)String a=" HELLO WORLD,HELLO JAVA SE AND HELLO JAVA ME ";char e=97;int b=a.toUpperCase().lastIndexOf(String.valueOf(e).toUpperCase());System.out.println(b); char型的不是字符吗,定义成数字格式不对啊,可是仍可以输出42啊,char的值也可以写成两位或更多位数字吗?
这里不是写成两位或更多位数字,而是用字符对应的ascii码赋值的,97是字符a对应的ascii码值,这样赋值是对的,但是若修改成 char e=\'97\'就不对了,在0-255范围内,char等同于int类型。 参考技术A 你好,char有对应的unicode码,这个你要是注意到了就没有困惑了。char要是直接将数字赋给他的话,那么范围是0到2的16次方-1,因为java中的char是2个字节(16位)。只要不超出这个范围,都是可以的。 参考技术B 因为字符的ASC码值是数字,所以可以这么定义。其意思就是:把ASC码值是97的字符赋值给字符型的变量e 参考技术C 哇,这繁杂java中字符串中的大小写转换
Java中把一个字符串中大写字母转换为小写,小写字母转换为大写
观看提示:
这里提供2中思维,但是第一种是正确的,第二种是错误的;第二种的思维可以了解了解,但是需要注意的是如果某个字符串定义为String类型,那么这个串就不能改变了;如果需要改变,那么应该使用StringBuffer,这个例子也能够很好的说明StringBuffer和String之间的区别!
下面的代码中exChange()能够得到正确的结论,exChange2()不能得到正确的结论,原因就是上面说的:如果某个字符串定义为String类型,那么这个串就不能改变了
- //把一个字符串中的大写转为小写,小写转换为大写:思路1
- public static String exChange(String str){
- StringBuffer sb = new StringBuffer();
- if(str!=null){
- for(int i=0;i<str.length();i++){
- char c = str.charAt(i);
- if(Character.isUpperCase(c)){
- sb.append(Character.toLowerCase(c));
- }else if(Character.isLowerCase(c)){
- sb.append(Character.toUpperCase(c)); //有一次面试问append()是哪个类里面的
- }
- }
- }
- return sb.toString();
- }
- //把一个字符串中的大写转为小写,小写转换为大写:思路2
- public static String exChange2(String str){
- for(int i=0;i<str.length();i++){
- //如果是小写
- if(str.substring(i, i+1).equals(str.substring(i, i+1).toLowerCase())){
- str.substring(i, i+1).toUpperCase();
- }else{
- str.substring(i, i+1).toLowerCase();
- }
- }
- return str;
- }
【温馨提示】.
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这个方法
- /**
- * <p>Swaps the case of a String changing upper and title case to
- * lower case, and lower case to upper case.</p>
- *
- * <ul>
- * <li>Upper case character converts to Lower case</li>
- * <li>Title case character converts to Lower case</li>
- * <li>Lower case character converts to Upper case</li>
- * </ul>
- *
- * <p>For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#swapCase(String)}.
- * A {@code null} input String returns {@code null}.</p>
- *
- * <pre>
- * StringUtils.swapCase(null) = null
- * StringUtils.swapCase("") = ""
- * StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"
- * </pre>
- *
- * <p>NOTE: This method changed in Lang version 2.0.
- * It no longer performs a word based algorithm.
- * If you only use ASCII, you will notice no change.
- * That functionality is available in org.apache.commons.lang3.text.WordUtils.</p>
- *
- * @param str the String to swap case, may be null
- * @return the changed String, {@code null} if null String input
- */
- public static String swapCase(String str) {
- if (StringUtils.isEmpty(str)) {
- return str;
- }
- char[] buffer = str.toCharArray();
- for (int i = 0; i < buffer.length; i++) {
- char ch = buffer[i];
- if (Character.isUpperCase(ch)) {
- buffer[i] = Character.toLowerCase(ch);
- } else if (Character.isTitleCase(ch)) {
- buffer[i] = Character.toLowerCase(ch);
- } else if (Character.isLowerCase(ch)) {
- buffer[i] = Character.toUpperCase(ch);
- }
- }
- return new String(buffer);
- }
以上是关于java字符大小写转换的主要内容,如果未能解决你的问题,请参考以下文章