Java——Scanner类与String类的常用方法应用

38 篇文章 1 订阅

Scanner的概述和方法
            final修饰,不能被继承
            System.in 标准的键盘录入
            hasNextInt() 判断键盘录入是否是int型整数,如果是,则返回true,否则为false 
                hasNextXxx    用来判断下一个判断是否是Xxx型
                nextXxx        获取下一个输入项
            public String nextLine():获取一个String类型的值
             (以下例子,解释如何获取多个int值或者多个String的值,或者两者一起获取的情况)
         
         String类的概述和方法
             final修饰,不能被继承,字符串是常量,一旦被赋值,就不能被改变
             构造方法: public String()                    空构造
                     public String(byte[] bytes)        把字节数组转换字符串
                     public String(byte[] bytes,int index,int length)    把字节数组的一部分转成字符串 
                     public String(char[] value)        把字符数组转成字符串
                     public String(char[] value,int index,int count)        把字符数组的一部分转成字符串
                     public String(String original)    把字符串常量转换成字符串
                     
             boolean:
                     boolean equals(Object obj)        比较字符串的内容是否相同,区分大小写
                     boolean equalsIgnoreCase(String str)    比较字符串的内容是否相同,忽略大小写
                     boolean contains(String str)            判断大字符串中是否包含小字符串
                     boolean startsWith(String str)            判断字符串是否以某个指定的字符串开头
                     boolean endsWith(String str)            判断字符串是否以某个指定的字符串结尾
                     boolean isEmpty()                        判断字符串是否为空
                     
             获取功能:
                     int length()                获取字符串的长度
                     char charAt(int index)        获取指定索引位置的字符
                     int indexOf(int ch)            返回指定字符在此字符串中第一次出现处的索引
                     int indexOf(String str)        返回指定字符串在此字符串中第一次出现处的索引
                     int indexOf(int ch,int fromIndex)            返回指定字符在此字符串中从指定位置后第一次出现处的索引
                     int indexOf(String str,int fromIndex)        返回指定字符串在此字符串中从指定位置后第一次出现处的索引    
                     lastIndexOf                                    从后向前找,但是索引还是从前向后数
                     String substring(int start)                    从指定位置开始截取字符串,默认到结尾
                     String substring(int start,int end)            从指定位置开始到指定位置结束截取字符串
             
             转换功能:
                     byte[] getBytes()            把字符串转换为字节数组
                     char[] toCharArray()        把字符串转换为字符数组
                     static String valueOf(char[] chs)        把字符数组转换成字符串
                     static String valueOf(int i)            把int类型的数据转换成字符串
                         String类的valueOf方法可以把任意类型的数据转成字符串
                     String toLowerCase()        把字符串转成小写
                     String toUpperCase()        把字符串转成大写
                     String concat(String str)   把字符串拼接
                     
             其他功能:
                     String replace(char old,char new)
                     String replace(String old,String new)
                     String trim()                去除字符串两端的空格
                     
                     按字典顺序比较两个字符串
                     int compareTo(String str)
                     int compareToIgnoreCase(String str)

 

最后写了两个方法,分别是字符串的反转和在父字符串中寻找子字符串出现的次数

 

 

package pra_06;

import java.util.Scanner;

public class J_12 {
	public static void main(String[] args) {
		
		Scanner sc=new Scanner(System.in);
		if(sc.hasNextInt()){
			int i=sc.nextInt();
			System.out.println(i);
		}else{
			System.out.println("类型输入错误");
		}
		
		String str=sc.nextLine();
		System.out.println(str);
		
		//创建两个对象,但是浪费空间
		//录入都是字符串,都用nextLine方法
		int j=sc.nextInt();
		Scanner sc2=new Scanner(System.in);
		String str2=sc2.nextLine();
		System.out.println(j);
		System.out.println(str2);
		
		String str3="abc";		//"abc"可以看成是一个字符串对象
		str3="def";				//当把"def"赋值给str3,原来的"abc"就成了垃圾
		System.out.println(str3);//String类重写了toString方法,返回的是该对象本身
		
		//-------------------------------------
		byte[] arr1={65,66,67};
		String s1=new String(arr1);
		System.out.println(s1);				//ABC
		
		byte[] arr2={65,66,67,68,69};
		String s2=new String(arr2,2,3);		//CDE
		System.out.println(s2);
		
		char[] arr3={'a','b','c','d','e','f'};
		String s3=new String(arr3);	
		System.out.println(s3);				//abcdef
		
		String s4=new String(arr3,1,4);		//bcde
		
		String s5=new String("1111");
		System.out.println(s5);  
		
		//-------------------------------------选定,alt+shift+m生成方法
		String st1="aaaaaaa";
		String st2="aaaaaaa";
		String st3="aaaAaaa";
		String st4="xxxxxxx";
		String st5="xxxaaaa";
		String st6="bbbxxxaaaa";
		String st7="bbb";
		String st8="aaaa";
		String st9="";
		//null是空常量,不能调用任何方法,否则会出现空指针异常,null常量可以给任意的引用数据类型赋值
		//""是字符串常量,同时也是一个String类的对象,对象就可以调用String类中的方法
		
		System.out.println(st1.equals(st2));	//true
		System.out.println(st2.equals(s3));		//false
		
		System.out.println(st2.equalsIgnoreCase(st3));	//true
		//System.out.println(st6.contains(st5));		//jdk的版本太高会在myeclipse出问题
		System.out.println(st6.startsWith(st7));
		System.out.println(st6.endsWith(st8));
		System.out.println(st9.isEmpty());				//true
	}
	public void login(){
		//eg:简单的模拟用户登录
		Scanner sc=new Scanner(System.in);
		for(int i=0;i<3;i++){
			System.out.println("请输入用户名:");
			String str1=sc.nextLine();
			System.out.println("请输入密码:");
			String str2=sc.nextLine();
			if("admin".equals(str1)&&"admin".equals(str2)){	//一般使用字符串常量调用方法,把变量当作参数传递,防止空指针异常
				System.out.println("登陆成功");
				break;
			}else{
				System.out.println("登陆失败,您还有"+(2-i)+"次机会 ");
			}
		}
	}
	//获取功能的例子
	public void get(){
		String s1="zswan";
		System.out.println(s1.length());
		String s2="qaaqaq";
		char c=s2.charAt(2);
		System.out.println(c);
		int index=s1.indexOf('a');	//如果存在,返回位置,不存在,返回-1
		System.out.println(index);
		
		int index2=s1.indexOf("wa");
		System.out.println(index2);
		
		int index3=s1.indexOf('n',2);
		System.out.println(index3);
		
		int index4=s1.indexOf("an", 1);
		System.out.println(index4);
		
		int index5=s1.lastIndexOf('z');		//从后向前找,第一次出现的字符,但是索引不变
		System.out.println(index5);
		
		String str_1=s1.substring(1);
		System.out.println(str_1);
		
		String str_2=s1.substring(1, 4);	//包含头不包含尾
		System.out.println(str_2);
	}
	//字符串的遍历
	public void scan(){
		String s="qazwsxedc";
		for(int i=0;i<s.length();i++){
			char c=s.charAt(i);
			System.out.println(c);
			
		}
	}
	
	//统计不同类型的字符个数
	public void num(){
		String s="qZcxa2121!@sadas";
		int i=0,j=0,k=0,q=0;
		for(int h=0;h<s.length();h++){
			char c=s.charAt(h);
			if(c>='a'&&c<='z'){
				i++;
			}else if(c>='A'&&c<='Z'){
				j++;
			}else if(c>='0'&&c<='9'){
				k++;
			}else
				q++;
		}
		System.out.println("大写字母个数为:"+j+" 小写字母个数为:"+i+"数字的个数为"+k+"符号的个数为"+q);
	}
	
	//转换功能
	public void conver(){
		String s="aAbABasa";
		byte[] arr=s.getBytes();
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);			//码表对应的数字
		} 
		
		char[] arr2=s.toCharArray();			//把字符串转换为字符数组
		for (int i = 0; i < arr2.length; i++) {
			System.out.println(arr2[i]);
		}
		
		char[] arr3={'a','b','c','d'};
		String s2=String.valueOf(arr3);			//直接调用静态方法valueOf,底层是由String类的构造方法组成
		System.out.println(s2);
		
		String s3=String.valueOf(100);			//将100转换成字符串
		System.out.println(s3);
		
		String s4="aaBB";
		String s5="ccDDee";
		String s6=s4.toLowerCase();
		String s7=s5.toUpperCase();
		System.out.println(s6);
		System.out.println(s7);
		System.out.println(s4+s5);				//用+拼接字符串更强大,可以用字符串与任意类型相加
		System.out.println(s4.concat(s5));		
	}
	//其他功能
	public void other(){
		String s="ksasa";
		String s2=s.replace('a', 'b');
		System.out.println(s2);
		
		//String s3=s.replace("as", "qq");	//jdk的问题
		//System.out.println(s3);
		
		
		String s3="    ks  asa   ";
		String s4=s3.trim();
		System.out.println(s4);
		
		String s5="abq";
		String s6="abz";
		int num=s5.compareTo(s6);			//按照码表值比较,如果是"a","aaaa",就会按照字符串长度
		System.out.println(num);
		
		String s7="ACa";
		String s8="Zaq";
		int num2=s7.compareToIgnoreCase(s8);
		System.out.println(num2);
	}
	//字符串反转
	public void convert(){
		Scanner sc=new Scanner(System.in);
		String str=sc.nextLine();
		char[] arr=str.toCharArray();
		String s="";
		for (int i=arr.length-1;i>=0;i--) {
			s=s+arr[i];
		}
		System.out.println(s);
	}
	//在父字符串中查找在子字符串出现的次数
	public void count_str(){
		String str="saaqwertyuiopvbaakkaallllsssaa";
		String str1="aa";
		int count=0;
		int index=0;
		while((index=str.indexOf(str1))!=-1){	//index标记找到的索引
			count++;
			str=str.substring(index+str1.length());
		}
		System.out.println();
	}
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值