DESKTOP-TEACTL5_20200829-曾越

问题:试卷最后一道求碎片平均值的编程题。

解决:

百度出了将字符串转换为字符数组的.toCharArray()方法,然后写了一个CharArrayTest类,在这个类里验证.toCharArray()方法。如下:

package metalslug6;

public class CharArrayTest {

public static void main(String[] args) {
    String s="aabbaaaccc";

    char[] chars=s.toCharArray();

    System.out.println(chars);
    System.out.println("数组长度:"+chars.length);
    for(int i=0;i<chars.length;i++) {
        System.out.print(chars[i]+"\t");
    }       

    System.out.println(chars[0]==chars[1]);
    System.out.println(chars[0]==chars[2]);
}

}

然后输出的结果为:

aabbaaaccc
数组长度:10
a a b b a a a c c c true
false

实际输出结果符合期望结果。开始用.toCharArray()方法解决最后一道求碎片平均值的编程题。

写完了像这样:

package metalslug6;

import java.util.Scanner;

public class LastOne {

public static double cut(String s) {

    int j=1;
    char[] chars=s.toCharArray();//将字符串转换为字符数组,可尝试用charAt()方法提取String中某个字符
    int n=chars.length;
    for(int i=0;i<n-1;i++) {
        if(chars[i]!=chars[i+1]) {          
            j++;
        }       
    }
    return (double)n/j;
}

public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入字符串:");
    String s=sc.nextLine();
    //String ss=null;
    //System.out.println(s);
    System.out.println(cut(s));

}

}

吐槽:考试的时候思路是对的,就是没有想起来把字符串转换为字符数组的.toCharArray()方法,就乱编了一个方法,跨度属实有点大;网上直接搜求碎片平均值的java编程题,出来的结果全是啥网易校招字符串碎片编程题,然后给的代码也复杂的离大谱,乍一看很高大上很哈人但感觉完全没必要整这么复杂,自己写还是香的。

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1