java基础知识(Scanner String)

这篇博客介绍了Java中Scanner类的基本用法,包括构造方法、hasNextXxx()和nextXxx()方法,以及在模拟用户登录场景中的应用。同时,文章探讨了String类的概述、构造方法、判断、获取功能,以及如何遍历和转换字符串,提供了统计字符个数和转换首字母的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java第11天之学到辽~

1.1 Scanner的概述和构造方法原理

####### * Scanner的概述

JDK5以后用于获取用户的键盘输入
* Scanner的构造方法原理
Scanner(InputStream source)
System类下有一个静态的字段:
public static final InputStream in; 标准的输入流,对应着键盘录入
1.2 Scanner类的hasNextXxx()
* hasNextXxx() 判断下一个是否是某种类型的元素,其中Xxx可以是Int,Double等
* 如果需要判断是否包含下一个字符串,则可以省略Xxx
1.3 nextXxx()方法
* nextXxx() 获取下一个输入项。Xxx可以是int double 等
* public String nextLine():获取一个String类型的值
* public String next():获取一个String类型的值
区别:next() 与 nextLine() 都可以用来输入一个字符串,但是next(),不能输入含
     有空格的字符串,遇到空格,自动结束输入,后面的内容将不能被打印出来
          nextLine() 用来输入字符串,不会存在next() 的问题,但是在录入的时候,如果
          先录入的是数字,载录入字符串,回车符会直接被录入,从而不会提示录入字符串,
解决办法:当需要先录入数字,再录入字符串时,可以重新new对象
* 代码演示:
* 模拟用户登陆 输入用户名,密码,进行校验,有三次机会
public class Scannersty {
    public static void main(String[] args) {
        String username = "哈哈";
        String password = "123456";
        Scanner scanner = new Scanner(System.in);


        for (int i = 1; i < 4; i++) {
            System.out.println("请输入用户名");
            String s = scanner.nextLine();
            System.out.println("请输入密码");
            String s1 = scanner.nextLine();

            if (s.equals(username)&&s1.equals(password)) {

                    System.out.println("登陆成功");
                    break;
                } else {
                    if ((3 - i) != 0) {
                        System.out.println("请重新输入,你还有" + (3 - i) + "次机会");
                    } else {
                        System.out.println("登陆失败");
                    }
                }

            }
        }
    }

1.4 String类的概述
* 字符串是由多个字符组成的一串数据
字符串字面值"abc"也可以看成是一个字符串对象。
字符串是常量,一旦被创建,就不能被改变
* s=“aaa”+“bbb”+“ccc” ,创建了几个字符串
有:aaa  bbb  ccc  aaabbb aaabbbccc 
在字符串常量池中放字符串常量,当一个字符串已经存在时,则不用再创建
* 代码演示
public class daima {
   public static void main(String[] args) {
       String s1="abc"; 
       String s2="ccc";
       String s3="ddd";
       String s4="abc";
       String s5 = new String("ccc");

       System.out.println(s1==s2);//false
       System.out.println(s2==s3); //false

       System.out.println(s4==s1);//true
       System.out.println(s5.equals(s2));//true
   }
}
1.5 String类的构造方法
public String():空构造

public String(byte[] bytes):把字节数组转成字符串 

public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串
(index:表示的是从第几 个索引开始, length表示的是长度)

public String(char[] value):把字符数组转成字符串

public String(char[] value,int index,int count):把字符数组的一部分转成字符串

public String(String original):把字符串常量值转成字符串
1.6 String 类的判断功能
 public boolean equals(Object obj)
      比较字符串的内容是否相同,区分大小写
      
 public boolean equalsIgnoreCase(String str)  
      比较字符串的内容是否相同,忽略大小写
      
 public boolean contains(String str)
      判断字符串中是否包含传递进来的字符串
      
 public boolean startsWith(String str)
      判断字符串是否以传递进来的字符串开头

 public boolean endsWith(String str)
      判断字符串是否以传递进来的字符串结尾
      
 public boolean isEmpty()
      判断字符串的内容是否为空串""
1.7 String类的获取功能
public int length():    获取字符串的长度

public char charAt(int index):  获取指定索引位置的字符

public int indexOf(int ch):   返回指定字符在此字符串中第一次出现处的索引

public int indexOf(String str):  返回指定字符串在此字符串中第一次出现处的索引

public int indexOf(int ch,int fromIndex)
返回指定字符在此字符串中从指定位置后第一次出现处的索引

public int indexOf(String str,int fromIndex)
 返回指定字符串在此字符串中从指定位置后第一次出现处的索引

public String substring(int start):  从指定位置开始截取字符串,默认到末尾

public String substring(int start,int end): 从指定位置开始到指定位置结束截取字符串
1.8 字符串的遍历代码演示
 public class daima {
    public static void main(String[] args) {
        String ss = new String("asadsafgfhf");
        String str="";
        for (int i = 0; i < ss.length(); i++) {
           str+= ss.charAt(i);
        }
        System.out.print(str);

    }
}
1.9 统计不同类型字符个数代码演示
public class getnum {
    public static void main(String[] args) {
       // 统计键盘录入的字符串中包含大写字母、小写字母、数字的个数,并测试
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入:");
        String s = scanner.nextLine();
        int t=0;
        int j=0;
        int k=0;
        for (int i = 0; i < s.length(); i++) {
            if(s.charAt(i)>='A'&&s.charAt(i)<='Z'){
                t++;
            }
             else if(s.charAt(i)>='a'&&s.charAt(i)<='z'){
                j++;
            }else{
                k++;
            }
        }
        System.out.println("大写字母个数为"+t);
        System.out.println("小写字母个数为"+j);
        System.out.println("数字个数为"+k);
    }
1.10 String类的转换功能
public byte[] getBytes():      把字符串转换为字节数组

public char[] toCharArray():     把字符串转换为字符数组

public static String valueOf(char[] chs):   把字符数组转成字符串

public static String valueOf(int i):    把int类型的数据转成字符串

 (注意:String类的valueOf方法可以把任意类型的数据转成字符串)
 
public String toLowerCase():     把字符串转成小写

public String toUpperCase():     把字符串转成大写

public String concat(String str):     把字符串拼接
* 把一个字符串的首字母转成大写,其余为小写 (代码演示)
 public class daima {
   public static void main(String[] args) {
       String ss = new String("asadsafgfhf");
       String str="";
       String substring = ss.substring(0, 1).toUpperCase();
      str=substring.concat(ss.substring(1));
       System.out.println(str);

   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值