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编程题,出来的结果全是啥网易校招字符串碎片编程题,然后给的代码也复杂的离大谱,乍一看很高大上很哈人但感觉完全没必要整这么复杂,自己写还是香的。
近期评论