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

点击上方蓝色链接,关注并“设为星标

精彩内容,每天及时推送

640?

第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+汉的半个”,请写出这个函数。

问题答案将会在下期系列文章中给出,希望大家都能养成独立思考的好习惯,先自己思考一下问题的答案。大家可以加我微信:hntkyxy,把自己的答案发给我,在下期文章中附上你的答案,仅限五人,先到先得。希望大家多多参与支持,这对你真的没什么坏处。

每日一问第1期 | 截取字符串_第1张图片

长按二维码识别关注

640?wx_fmt=gif

你可能感兴趣的:(每日一问第1期 | 截取字符串)