专栏首页AlbertYang的编程之路每日一问第1期 | 截取字符串

每日一问第1期 | 截取字符串

第0期答案

上期问题每日一问第0期 | 大小写字符转换

问题分析:

本问题比较简单,思路是遍历字符串中的字符,然后判断字符串中的字符如果是大写字母就变成了小写,如果是小写字母就变为大写。在Java中我们可以使用toCharArray()方法把字符串变为字符数组,通过Character.toUpperCase()方法把小写字母变为大写,通过Character.toLowerCase()方法把大写字母变为小写。

代码:

package com.albertyy.AlbertYang;

import java.util.Scanner;

public class String_Substitution {

  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String str = sc.nextLine();
    System.out.println(substitutionStr(str));
  }

  public static String substitutionStr(String str) {
    char[] c = str.toCharArray();
    for (int i = 0; i < c.length; i++) {
      if ('a' <= c[i] && c[i] <= 'z') {
        c[i] = Character.toUpperCase(c[i]);
      } else if ('A' <= c[i] && c[i] <= 'Z') {
        c[i] = Character.toLowerCase(c[i]);
      }
    }
    String s = new String(c);
    return s;
  }

}

读者小白提供的答案:

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);        
        String str1 = sc.nextLine();
        System.out.println(changeStr(str1));        
    }
    public static String changeStr(String str){  
        char[] ch = str.toCharArray();          
        int a = 'A'-'a';   //获得大小写之间差值  
        for(int i = 0; i < ch.length; i++){  
            if('a' <= ch[i] && ch[i] <= 'z'){  
                ch[i] = (char)(ch[i]+a);  
            }else if('A' <= ch[i] && ch[i] <= 'Z'){  
                ch[i] = (char)(ch[i]-a);  
            }           
        }  
          String s=new String(ch);
        return s;  
    }  
}

每日一问|今日问题

写一个函数,函数中传入2 个参数,1 个String类型的字符串,1 个int类型的字节数量,返回值为截取的字符串,要求字符串中的中文不能出现乱码:如(“我ABC”,4)应该截为“我AB”,输入(“我ABC 汉DEF”,6)应该输出为“我ABC”而不是“我ABC+汉的半个”,请写出这个函数。

本文分享自微信公众号 - AlbertYang(AlbertYang666),作者:AlbertYang

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 装饰器和代理模式的区别,从一碗小米粥谈起

    代理即代替意思,可替代原类的所有功能,即和原类实现相同的规范。代理模式和装饰器模式很像。

    AlbertYang
  • Java面试题总结之数据库与SQL语句

    2、有三张表,学生表S,课程C,学生课程表SC,学生可以选修多门课程,一门课程可以被多个学生选修,通过SC 表关联。

    AlbertYang
  • JavaScript进阶教程(5)-一文让你搞懂作用域链和闭包

    在JS中变量可以分为局部变量和全局变量,对于变量不熟悉的可以看一下我这篇文章:搞懂JavaScript全局变量与局部变量,看这篇文章就够了 作用域就是变量的使用...

    AlbertYang
  • 工程师笔试题1

    1.访问修饰符作用范围由大到小是( )。 A.private-protected-default-publicB.public-protected-defaul...

    Java学习
  • 【leetcode算法-无重复字符的最长子串】

    滑动窗口,通过使用 HashSet 作为滑动窗口,我们可以用 O(1) 的时间来完成对字符是否在当前的子字符串中的检查。滑动窗口是数组/字符串问题中常用...

    用户5640963
  • SpringBoot入门建站全系列(二)Controller种类及映射处理详解

    Controller及Mapping其实不属于SpringBoot,SpringBoot只是个大杂烩的容器而已。Controller及Mapping分别在Spr...

    品茗IT
  • 第179天:javascript中replace使用总结

    ECMAScript提供了replace()方法。这个方法接收两个参数,第一个参数可以是一个RegExp对象或者一个字符串,第二个参数可以是一个字符串或者一个函...

    半指温柔乐
  • SpringBoot入门建站全系列(二)Controller种类及映射处理详解

    Controller及Mapping其实不属于SpringBoot,SpringBoot只是个大杂烩的容器而已。Controller及Mapping分别在Spr...

    品茗IT
  • Android开发获取系统中已安装程序信息的方法

    本文实例讲述了Android开发获取系统中已安装程序信息的方法。分享给大家供大家参考,具体如下:

    砸漏
  • 推荐Json解析库Moshi——不只是Gson

    说到Json解析库,网上可以说一找一大堆,例如经典的JSONObject、Gson、FastJson等等。Json解析库确实是大部分程序员都会使用的一类库,虽然...

    蜻蜓队长

扫码关注云+社区

领取腾讯云代金券