题解 | #字符串变形#

字符串变形

https://www.nowcoder.com/practice/c3120c1c1bc44ad986259c0cf0f0b80e

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @param n int整型 
     * @return string字符串
     */
    public String trans (String s, int n) {
	  // 这里千万不要定义成String,否则通过不了案例,我之前就是因为这个问题,一直过不了
        StringBuffer res = new StringBuffer();
	  // 这里也一样,原因是因为String拼接会每次都创建一个字符串
        StringBuffer tmp = new StringBuffer();
	  // 从后往前遍历字符串
        for (int i = n - 1; i >= 0; i--) {
            char c = s.charAt(i);
            if (c >= 'a' && c <= 'z') {
			  	// 将小写转大写
                tmp.append((char)(c - 'a' + 'A'));
            } else if (c >= 'A' && c <=  'Z') {
			  	// 将大写转小写
                tmp.append((char)(c - 'A' + 'a') );
            } else if (c == ' '){
                // 遇到空格说明一个单词已经转写完成,需要存储起来,注意这里要reverse
                res.append(tmp.reverse() + " ");
			  	// 将tmp重新初始化,以方便下一个字符串的转写
                tmp = new StringBuffer();
            }
        }
	  	// 注意最终结果要加上tmp,因为如果最后一个单词没有空格,那个最后一个就没有存储在res里,这里要添加上
        return res.append(tmp.reverse()).toString();
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
12-16 15:57
小鹏汽车 java后端 22*15(固定13,2个月年终) 硕士211
点赞 评论 收藏
分享
昨天 11:26
复旦大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务