2021-10-28单词分析(关于String类的常用方法)

/*题目描述
小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。

现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。

输入描述
输入一行包含一个单词,单词只由小写英文字母组成。

对于所有的评测用例,输入的单词长度不超过 1000。

输出描述
输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 个。如果有多个字母出现的次数相等,输出字典序最小的那个。

第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数.*/
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
	        Scanner scan = new Scanner(System.in);
	        String s=scan.nextLine();
	        //创建字典字符串a
	        String a="abcdefghijklmnopqrstuvwxyz";
	        //创建对应的字典数组b[]
	        int[] b=new int[26];
	        int max=0;
	        int index=0;

	        for(int i=0;i<s.length();i++){
	          b[a.indexOf(s.charAt(i))]++;  
	        }
	        for(int j=0;j<b.length;j++){
	          if(b[j]>max){
	            max=b[j];
	            index=j;
	          }
	        }
	        System.out.println(a.substring(index,index+1));
	        System.out.println(max);
	       
	    }
}

(1)s.charAt(int index),返回调用该方法的字符串s位于指定位置index处的字符

String s="good";
System.out.println(s.charAt(2);//输出o

(2)indexOf()查找字符串在调用该方法的String中首次出现的位置

lastIndexOf()查找字符串在调用该方法的String中最后一次出现的位置

 String string = "aaa456ac";  
  
    //查找指定字符是在字符串中的下标。在则返回所在字符串下标;不在则返回-1.  
    System.out.println(string.indexOf("b"));//indexOf(String str);返回结果:-1,"b"不存在  
  
    // 从第四个字符位置开始往后继续查找,包含当前位置  
    System.out.println(string.indexOf("a",3));//indexOf(String str, int fromIndex);返回结果:6  
  
    //(与之前的差别:上面的参数是 String 类型,下面的参数是 int 类型)参考数据:a-97,b-98,c-99  
  
    // 从头开始查找是否存在指定的字符  
    System.out.println(string.indexOf(99));//indexOf(int ch);返回结果:7  
    System.out.println(string.indexOf('c'));//indexOf(int ch);返回结果:7  
  
    //从fromIndex查找ch,这个是字符型变量,不是字符串。字符a对应的数字就是97。  
    System.out.println(string.indexOf(97,3));//indexOf(int ch, int fromIndex);返回结果:6  
    System.out.println(string.indexOf('a',3));//indexOf(int ch, int fromIndex);返回结果:6  
  
    //这个就是灵活运用String类提供的方法,拆分提供的字符串。  
    //String s = "D:\\Android\\sdk\\add-ons";  
    //System.out.println(s);  
    //while (s.lastIndexOf("\\") > 0) {  
    //    s = s.substring(0, s.lastIndexOf("\\"));  
    //    System.out.println(s);  
    //}  

(3)substring()用于获取调用该方法的String的一个字串

substring(int begin)

substring(int begin,int end)

String s="qwerty";
System.out.println(s.substring(3));//输出rty
System.out.println(s.substring(3,4));//输出r,需要注意截取字串的范围是[begin,end)

(4)length()

***注意不要将String的length()方法和数组的length属性相混淆****

(5)用new创建数组对象后,系统将为每个数组元素赋初值,这个初值取决于数组的类型,所有数值型数组元素初值均为0. (P41)布尔型初值为false,如果数组元素类型是类,接口或数组,则元素的初值为null

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值