精华内容
下载资源
问答
  • java把一个字符串中大写字母转换为小写小写字母转换为大写 观看提示: 这里提供2中思维,但是第一种是正确的,第二种是错误的;第二种的思维可以了解了解,但是需要注意的是如果某个字符串定义为String类型,...

    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));

    11. }

    12. }

    13. }

    14.  
    15. return sb.toString();

    16. }

    17.  
    18. //把一个字符串中的大写转为小写,小写转换为大写:思路2

    19. public static String exChange2(String str){

    20. for(int i=0;i<str.length();i++){

    21. //如果是小写

    22. if(str.substring(i, i+1).equals(str.substring(i, i+1).toLowerCase())){

    23. str.substring(i, i+1).toUpperCase();

    24. }else{

    25. str.substring(i, i+1).toLowerCase();

    26. }

    27. }

    28. return str;

    29. }

     

    
     

    【温馨提示】.

    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.  
    33. char[] buffer = str.toCharArray();

    34.  
    35. for (int i = 0; i < buffer.length; i++) {

    36. char ch = buffer[i];

    37. if (Character.isUpperCase(ch)) {

    38. buffer[i] = Character.toLowerCase(ch);

    39. } else if (Character.isTitleCase(ch)) {

    40. buffer[i] = Character.toLowerCase(ch);

    41. } else if (Character.isLowerCase(ch)) {

    42. buffer[i] = Character.toUpperCase(ch);

    43. }

    44. }

    45. return new String(buffer);

    46. }

    展开全文
  • Java把一个字符串中大写字母转换为小写小写字母转换为大写这里提供2中思维,但是第一种是正确的,第二种是错误的;第二种的思维可以了解了解,但是需要注意的是如果某个字符串定义为String类型,那么这个串就不...

    bc7fdfc03a181785f939cc7c3cabcadc.gif

    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

    char c = str.charAt(i);

    if(Character.isUpperCase(c)){

    sb.append(Character.toLowerCase(c));

    }else if(Character.isLowerCase(c)){

    sb.append(Character.toUpperCase(c));

    }

    }

    }

    return sb.toString();

    }

    //把一个字符串中的大写转为小写,小写转换为大写:思路2

    public static String exChange2(String str){

    for(int i=0;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这个方法/**

    Swaps the case of a String changing upper and title case to

    * lower case, and lower case to upper case.

    *

    *  

    Upper case character converts to Lower case

    *  

    Title case character converts to Lower case

    *  

    Lower case character converts to Upper case

    *

    For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#swapCase(String)}.

    * A {@code null} input String returns {@code null}.

    *

    * StringUtils.swapCase(null)                 = null

    * StringUtils.swapCase("")                   = ""

    * StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"

    *

    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.

    *

    * @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 

    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);

    }

    展开全文
  • 字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。 示例: s = “abaccdeff” 返回 “b” s = “” 返回 " " 限制: 0 <= s 的长度 <= 50000 思路分析:有序哈希表 ...

    在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。

    示例:

    s = “abaccdeff”
    返回 “b”

    s = “”
    返回 " "

    限制:

    0 <= s 的长度 <= 50000

    思路分析:有序哈希表
    可以把整个字符串以字符为Key,出现的次数为Value,存入哈希表中。有序哈希表中的键值对是 按照插入顺序排序 的。基于此,可通过遍历有序哈希表,实现搜索首个 “数量为 1 的字符”。
    Java代码如下:

    public char firstUniqChar(String s) {
        LinkedHashMap<Character,Integer> map = new LinkedHashMap<>();
        for (char c : s.toCharArray()) {
            if (map.containsKey(c))
                map.put(c,map.get(c) + 1);
            else map.put(c, 1);
        }
        Iterator it = map.entrySet().iterator();
        while (it.hasNext()){
            Map.Entry<Character,Integer> entry = (Map.Entry) it.next();
            if (entry.getValue() == 1)
                return entry.getKey();
        }
        return ' ';
    }
    

    优化
    我们注意到,题目只要求返回字符,不要求统计次数。所以针对需求代码可以优化。Map 结构的 Value 使用 Boolean 类型是一个更好的选择,原因如下:
    1)一个字母出现的次数大于 1 次就不符合要求了,这个时候使用 false标记状态相对于 Integer 的不断递增更合理,也更省空间。
    2) 布尔值可以用来判断,可以简化代码逻辑。

    public char firstUniqChar(String s) {
        Map<Character, Boolean> dic = new LinkedHashMap<>();
        char[] sc = s.toCharArray();
        for(char c : sc)
            dic.put(c, !dic.containsKey(c));
        for(Map.Entry<Character, Boolean> d : dic.entrySet()){
           if(d.getValue()) return d.getKey();
        }
        return ' ';
    }
    
    展开全文
  • 实现一个算法,确定一个字符串的所有字符是否全都...二个办法通过位运算空间幅度减小为了原来的1/8(代码假定字符串只含有小写的a到z),时间复杂度不变。 还有其他解法: 将字符串中的每个字符与其他字符比较


    //method to figure out if there's no duplicate char in a ASCII string
    
    import java.lang.String
    
    
    boolean isUniquedChars(String myString)
    {
    	if(myString.length() > 256)
    		return false;
    	
    	boolean[] char_set = new boolean[256];
    	for (int i = 0; i < myString.length(); i++)
    	{
    		int val = myString.charAt(i);
    		if (char_set[val])
    		{ return false; }
    		char_set[val] = true;
    	}
    	return true;
    }
    
    
    
    //method 2
    boolean isUniquedChars_method2(String str)
    {
    	if (str.length() > 256)
    	{
    		return false;
    	}
    	
    	int checker = 0;
    	for (int i = 0; i < str.length(); i++)
    	{
    		int val = str.charAt(i) - 'a';
    		if (checker & (1 << val) > 0)
    		{return false;}
    		checker |= (1 << val);
    	}
    	return true;
    }


    实现一个算法,确定一个字符串的所有字符是否全都不同

    首先 询问字符串是ASCII 还是Unicode,二者不同只在于unicode需要更大的存储空间。

    以上两个办法中,第一个办法的时间复杂度为O(n), 空间复杂度为O(1)

    第二个办法通过位运算把空间幅度减小为了原来的1/8(代码假定字符串只含有小写的a到z),时间复杂度不变。


    还有其他解法:

    将字符串中的每个字符与其他字符比较,时间复杂度O(n2),空间复杂度O(1)

    对字符串进行时间复杂度为O(nlog(n))的排序,线性检查有没有相邻字符完全相同的情况

    展开全文
  • 通常来说从栈里面取出数据要比从堆里面取出数据速度来的快,第一种方法几乎全部用... public class MyString2 { /** * 把一个字符串中的大写字母转换成小写小写字母转换成大写 * 第二种方法 * @param s 传入的字
  • java字符串操作大全

    2012-11-12 13:17:06
     它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下:  String replace(char original,char replacement)  例如:String s="Hello".replace('l','w');  第二种形式...
  • Java把一个字符串中大写字母转换为小写小写字母转换为大写 观看提示: 这里提供2中思维,但是第一种是正确的,第二种是错误的;第二种的思维可以了解了解,但是需要注意的是如果某个字符串定义为String类型,...
  • /* * 需求:一个字符串的首字母转换成大写,其余为小写。... * A:先获取第一个字符 * B; 获取除了第一个字符以外的字符 * C:A转成大写 * D:B转成小写 * E:C拼接D * */ public cla
  • 3、 按字典序 如果第一个字符串大于第二个字符串 返回大于0,如果第一个字符串等于第二个字符串 返回等于0 ,如果第一个字符串小于第二个字符串返回小于0。 4、例子 compareToIgnoreCase("HARD","hark")...
  • 题目名:第一个只出现一次的字符 编程语言 Java 题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始...
  • 第一个只出现一次的字符(java) 题目描述: 在字符串s中找出第一个只出现一次的字符。如果没有,返回一个单空格。s只包含小写字母。 样例: 输入:s = “abaccdeff” 输出:‘b’ 输入:s = “” 输出:’ ’ 输入:s...
  • 字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。 示例: s = “abaccdeff” 返回 “b” s = “” 返回 " " 限制: 0 <= s 的长度 <= 50000 java 解题思路: 创建一...
  • (1)字符串首字母大写: 字符转为大写:toUpperCase(); 字符转为小写:toLowerCase();...(2)获取的第一个字母变成大写; (3)将后面的字母与其拼接 */ import java.util.*; public class Stri...
  • * 需求:一个字符串的首字母转成大写,其余为小写。(只考虑英文大小写字母字符) * 举例: * helloWORLD * 结果: * Helloworld * * 分析: * A:先获取第一个字符 * B:获取除了第一个字符以外的...
  • varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) n(-84~127) 可以存储正数、负数、零、定点数和精度为38位的浮点数...
  • Java数据结构和算法》二版 Robert lafore 编程作业 十...需要一个把字符串转换成数组下标的 哈希函数。参考本章“哈希化字符串”一节。假设字符串全是小写字母,所以26 个字符就足够了。 11.3 写一
  • 输入一个字符串,要求输出能所有的小写字符放前面,大写字符放中间,数字放后面,并且中间用空格隔开,如果同种类字符间有不同种类的字符,输出后也要用字符隔开 如: 输入:12abc3KF12 输出:abc KF 12 3 12 ...
  • 学习java和python的第二周,感觉学习到了好多,收获了好多。... 这道题给我们两个字符串,第二个字符串只比第一个多一个小写字母,让我们这个“异类”找出来。我的算法是这样的,用两层循环,如果对于第一个字符串
  • 标题:猜字母abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。接下来删除1个字母(即开头的字母a),以及3个,5个等所有奇数...解析://准备题目要求的2014个字符组成的字符串String s = ""...
  • Java开发技术大全(500源代码).

    热门讨论 2012-12-02 19:55:48
    HelloWorldApp.java 第一个Java开发的应用程序。 firstApplet.java 第一个Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...
  • 转换成小写字母

    2020-10-09 19:47:55
    题目 实现函数 ToLowerCase(),该函数接收一个字符串参数...这个比较简单,首先第一种方法可以直接调用JAVA中的Tolowercase()方法,把字符串转换成小写。第二种就是要明白’A’和’a’之间相差32,大写字符和小写字符之
  • 以前写了一个java的正规表达式的java工具类,分享一下,有用到的欢迎下载使用。 如果你有常用的定义好的,且测试通过的正规表达式,欢迎跟贴,也让我享用一下 . 类中用到了 jakarta-oro-2.0.jar 包,请大家自己在 ...
  • java学习日记

    2014-12-08 15:45:03
    2013-04-211、字符串函数:indexOf;匹配相同的字符串。返回第一次查找到的下标split;分割字符串;返回一个字符串数组...把字符串全部转换为小写字母toUpperCase;把字符串全部转换为大写字母2、基本类型与字符串
  • 题干 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串...数组第一个字符串拿出来 和后边每个字符串进行比对 如果不是startwith 的话就往前边缩短 Java代码 package daily; public

空空如也

空空如也

1 2 3 4 5
收藏数 89
精华内容 35
关键字:

java把字符串第一个字符小写

java 订阅