Scanner

一个可以使用正常表达式来解析基本类型的字符串的简单文本扫描器

一般方法:

  hasnextXxx():判断是否还有下一个输入项,其中Xxx可以是int。double等类型

  如果需要判断是否包含下一个字符串,则可以省略Xxx

  nextXxx():获取下一个输入项,Xxx的含义和上个方法Xxx相同,默认情况下,Scanner

  使用空格,回车等作为分隔符

package tan.jung.scanner;import java.util.Scanner;public class demo1_scanner {public static void main(String[] args) {// TODO Auto-generated method stubScanner sc =new Scanner(System.in);// int i=sc.nextInt();// System.out.println(i);if (sc.hasNextInt()) {int i=sc.nextInt();System.out.println(i);}else{System.out.println("错误的类型");}}}

·案例

Scanner获取数据出现小数点问题

package tan.jung.scanner;import java.util.Scanner;public class demo2_scanner {public static void main(String[] args) {/** 解决方案* 1.创建两次对象,但是浪费空间* 2.键盘录入的都是字符串,都用nextLine()方法* */Scanner sc =new Scanner(System.in);int i=sc.nextInt();Scanner sc2 =new Scanner(System.in);String line=sc2.nextLine();System.out.println(i);System.out.println(line);}}

案例

String类型

  字符串面值“” 也可以看成一个字符串。

  字符串是常量,一旦被赋值,就不能被改变。

package tan.jung.string;public class demo1_Stirng {public static void main(String[] args) {String str ="abc";        //abc可以看成一个字符串str ="acc";           //当acc赋值给str,原来的abc就变成了垃圾System.out.println(str.toString());  //string类重写了tostring方法返回的是该对象本身
    }}

案例

String构造方法

package tan.jung.string;public class demo2_Stirng {/*    public    stirng():空构造*     public  stirng(byte[] bytes):把字节数组转成字符串*  public  stirng(byte[] bytes,int index,int length):把字节数组的一部分转成字符串*  public  stirng(char[] value):把字符数组转成字符串*  public  stirng(char[] value,int index,int length):把字符数组的一部分转成字符串*  public  stirng(String original):把字符串常量转成字符串          * */public static void main(String[] args) {String s1=new String();System.out.println(s1);byte[] arr1={97,98,99};String s2=new String(arr1);  //解码
        System.out.println(s2);byte[] arr2={100,101,102};String s3=new String(arr2,1,2); //将arr2字节数组从1索引开始转换2个
        System.out.println(s3);char data[]={'a','b','c','d','e'};//将字符数组转换成字符串String s4=new String(data);System.out.println(s4);String s5=new String(data, 1, 2);System.out.println(s5);String s6=new String("heima");System.out.println(s6);}}

package tan.jung.string;public class demo3_String {public static void main(String[] args) {// demo1();//demo2();//demo3();//demo4();
        demo5();}private static void demo5() {String s1="ab";String s2="abc";   String s3=s1+"c";//任何字符串与数据用“+”相连接,都会产生新的字符串System.out.println(s3==s2);   //falseSystem.out.println(s3.equals(s2));//true
    }private static void demo4() {String s1="a"+"b"+"c";String s2="abc";   System.out.println(s1==s2);   //true java中有常量优化机制System.out.println(s1.equals(s2));//true
    }private static void demo3() {String s1=new String("abc");//堆内存对象的地址值String s2="abc";   //常量池中的地址值System.out.println(s1==s2);   //falseSystem.out.println(s1.equals(s2));//true
    }private static void demo2() {String s1=new String("abc");System.out.println(s1);   //创建了两个对象,一个在常量池,一个在堆内存
    }private static void demo1() {
//常量池中没有这个字符串对象,就穿件一个,如果有直接用String s1="abc";String s2="abc";System.out.println(s1==s2);   //trueSystem.out.println(s1.equals(s2));//对象相同时才能true
    }}

String面试题

String判断功能

“ ”和null区别

“ ”是字符串常量,同是也是一个String类的对象,既然是对象淡然可以调通String泪中的方法

null是空常量,不能调用任何的方法,否则会出现空指针异常,null常量可以给任意的引用数据类型赋值

package tan.jung.string;public class demo4_String {/*    boolean equals(object obj):比较字符串的内容是否相同,区分大小写*     boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写*     boolean contains(String str):判断大写字符串是否包含字符串*     boolean startsWith(String str):判断字符串是否以某个指定的字符串开头*     boolean endWith(String str):判断字符串是否以某个指定的字符串结尾*     boolean isEmpty():判断字符串是否为空* */public static void main(String args[]) {//demo1();//demo2();String s1="heima";String s2=null;System.out.println(s1.isEmpty());System.out.println(s2.isEmpty());}private static void demo2() {String s1="我爱xuexi";String s2="xuexi";String s3="我爱buxuexi";String s4="我爱";String s5="xuexi";System.out.println(s1.contains(s2));//判断是否包含传入的字符串
        System.out.println(s1.contains(s3));System.out.println("-------------");System.out.println(s1.startsWith(s4));//判断是否以传入的字符串开头
        System.out.println(s1.startsWith(s5));System.out.println("-------------");System.out.println(s1.endsWith(s5));//判断是否以传入的字符串结尾System.out.println("-------------");}private static void demo1() {String s1="heima";String s2="HEIMA";System.out.println(s1.equals(s2));System.out.println(s1.equalsIgnoreCase(s2));}
}

案例

模拟登陆

package tan.jung.test;import java.util.Scanner;public class test1 {/*模拟登陆* * */public static void main(String[] args) {Scanner sc =new Scanner(System.in);//创建键盘录入对象for (int i = 0; i < 3; i++) {        System.out.println("请输入用户名");String username=sc.nextLine();   //将键盘录入的用户名存储在username中System.out.println("请输入密码:");String password=sc.nextLine();    //将键盘录入的密码存储在password中if("12345".equals(username) && "12345".equals(password)){System.out.println("欢迎"+username+"登陆");break;}else{if (i==2) {System.out.println("你的错误次数已到,请明天再来");}System.out.println("录入错误,还有"+(2-i)+"次机会");}}
}}

案例

String获取功能

package tan.jung.string;public class demo5_String {/*    int length():获取字符串的长度*     char charAt(int index):获取指定索引位置的字符*     int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引*  int indexOf(String str):返回指定字符在此字符串中第一次出现处的索引*  int indexOf(int ch,int formIndex):返回指定字符在此字符串中从指定位置后第一次出现处的索引*  int indexOf(String str,int formIndex):返回指定字符在此字符串中从指定位置后第一次出现处的索引*  lastIndexOf*  String substring(int start):从指定位置开始截取字符串,默认到末尾*  String substring(int start,int end):从指定位置开始到指定位置结束截取字符串* */public static void main(String[] args) {//demo1();//demo2();        //demo3();//demo4();    //demo5();String s="heima";s.substring(4);      //subString会产生一个新的字符串,需要将新的字符串记录System.out.println(s.substring(0));}private static void demo5() {String s1="woaixuexi";String sub=s1.substring(4);System.out.println(sub);String s2=s1.substring(0, 4); //包含头,不包含尾
        System.out.println(s2);}private static void demo4() {String s1="woaixuexi";int index=s1.lastIndexOf('i');System.out.println(index);}private static void demo3() {String s1="woaixuexi";int index1=s1.indexOf('i', 4);  //从指定位置开始向后找
        System.out.println(index1);}private static void demo2() {String s1="heima";int index=s1.indexOf("a");   //参数接收的类型会自动提升
        System.out.println(index);int index2=s1.indexOf('z');System.out.println(index2);  //不存在就返回-1int index3=s1.indexOf("ma");System.out.println(index3);  //获取字符串第一个字符出现的位置
    }private static void demo1() {int [] arr={1,2,3};System.out.println(arr.length);  //数组中的length是属性String s1="heima";System.out.println(s1.length());String s2="我热爱学习";System.out.println(s2.length());char c=s2.charAt(2);System.out.println(c);}}

package tan.jung.test;public class test3 {public static void main(String[] args) {String s="ABCDEabcd123456!@#$%^";int big=0;int small=0;int num=0;int other=0;for (int i = 0; i < s.length(); i++) {char c=s.charAt(i);     //通过索引获取每一个字符if(c>='A' && c<='Z'){big++;              //如果猫族是大写字母,就让对其的变量自增}else if (c>='a' && c<='z') {small++;}else if(c>='0' && c<='9'){num++;}else {other++;}}System.out.println(s+"中大写子母有:"+big);System.out.println(s+"中小写子母有:"+small);System.out.println(s+"中数字有:"+num+",其他字符"+other);}}

练习

String类的转换功能

package tan.jung.string;public class demo6_String {/*    byte[] getBytes():把字符串转换为字节数组     demo1*     char[] toCharArray():把字符串转换为字符数组    demo2*     Static String valueOf(char[] chs):把字符数组转成字符串    demo3*     static String valueOf(int i):把int类型的数据转成字符串    demo3*         Sting类的valueOf方法可以把任意类型的数据转成字符串* * String toLowerCase():把字符串转成小写* String toUpperCase():把字符串转成大写* String concat(String str):把字符串拼接* */public static void main(String[] args) {//demo1();//demo2();//demo3();String s1="ABCDEFG";String s2="abcdeg";String s3=s1.toLowerCase();String s4=s2.toUpperCase();System.out.println(s3);System.out.println(s4);System.out.println(s3.concat(s4));}private static void demo3() {char[] arr={'A','B','C'};String s=String.valueOf(arr);System.out.println(s);String i=String.valueOf(100);  //将100转换成字符串System.out.println(i+","+100);person p1=new person("小谭",23);System.out.println(p1);String s3=String.valueOf(p1);  //调用的是对象的toString方法
        System.out.println(s3);}private static void demo2() {String s="heima";char[] arr=s.toCharArray();for (int i = 0; i < arr.length; i++) {System.out.print(arr[i]+" ");}}private static void demo1() {String s2="你我爱你";byte[] arr2=s2.getBytes();    //通过gbk码表将字符串转换成字节数组for (int i = 0; i < arr2.length; i++) { //编码:把我们看得懂转换成计算机看得懂的System.out.print(arr2[i]+" ");        //gbk码表一个中文代表两个字节  gbk码表特点,中文的第一个字节肯定是负数
        }}}//第二个包
package tan.jung.string;public class person {private String name;private int age;public person() {super();// TODO Auto-generated constructor stub
    }public person(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "person [name=" + name + ", age=" + age + "]";}}

public class test2 {public static void main(String[] args) {String s="WOAIHEIMA";String s2=s.substring(0, 1).toUpperCase().concat(s.substring(1).toLowerCase());System.out.println(s2);}}

转换大小写

public class test2 {public static void main(String[] args) {int [] arr={1,2,3};String s="[";for (int i = 0; i < arr.length; i++) {if (i==arr.length-1) {//3-1 2-1 1-1 =0=i;s=s+arr[i]+"]";}else{s=s+arr[i]+",";}}System.out.println(s);}}

练习题

String替换

public class demo7_String {public static void main(String[] args) {String s ="heima";String s2=s.replace('i', 'a');System.out.println(s2);String s3=s.replace("ei", "ao");System.out.println(s3);}}

案例

String去除字符串两空格

public class demo7_String {public static void main(String[] args) {String s1="  hei  ma  ";String s2=s1.trim();System.out.println(s2);}}

案例

String按字典顺序比较两个字符串

 1 public class demo7_String {
 2
 3     public static void main(String[] args) {
 4     String s1="我";
 5     String s2="爱";
 6     int num=s1.compareTo(s2);
 7     System.out.println('我'+0);
 8     System.out.println('爱'+0);
 9     System.out.println(num);
10
11
12     String s5="heima";
13     String s6="HEIMA";
14     int num2=s5.compareTo(s6);
15     System.out.println(num2);
16
17     int num3=s5.compareToIgnoreCase(s6);
18     System.out.println(num3);
19     }
20
21 }

案例

字符串反转

package tan.jung.test;import java.util.Scanner;public class test4 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);System.out.println("请输入字符串");String line=sc.nextLine();char[] arr=line.toCharArray();String s="";for (int i = arr.length-1; i >=0; i--) {s=s+arr[i];}System.out.println(s);}}

案例

转载于:https://www.cnblogs.com/JungTan0113/p/10906182.html

2019-05-22 Java学习日记 day12相关推荐

  1. Java学习日记1——基础认知

    Java学习日记1--基础认知 学习Java阶段,如果发现不正确的描述,还请指正! 首先附上Java相关下载链接和配置教程链接 Java相关软件工具下载地址:官方下载 Java环境配置(win10配置 ...

  2. Java学习日记-Day01

    Java学习日记-Day01 Java语言概述 比特(byte)与字节 内存 Java基础知识图解 人机交互方式 常用的DOS命令 常用快捷键 计算机编程语言介绍 第一代语言 第二代语言 第三代语言 ...

  3. 尚学堂Java学习日记Day3

    尚学堂Java学习日记Day3 第三天老师先回顾了昨天的内容我从回顾中掌握了新的知识 如下图所示 int与double计算,输出类型为double的不同结果 会把int转成double类型的,这是隐式 ...

  4. Java学习日记:UI篇(6)--谢尔宾斯基地毯图

    Java学习日记:UI篇(6)–谢尔宾斯基地毯图 引言:谢尔宾斯基地毯是数学家谢尔宾斯基提出的一个分形图形,谢尔宾斯基地毯和谢尔宾斯基三角形基本类似,不同之处在于谢尔宾斯基地毯采用的是正方形进行分形构 ...

  5. 【日记】Java学习日记(第63天)持续无聊更新

    前言 Youtube上EJ Media(up主)的视频我依次学完了HTML.CSS.Javascript.Jquery.觉得他教得挺好的(短小精悍),就继续学他教的JAVA.感觉EJ教的都是些语法什么 ...

  6. 尚学堂Java学习日记Day1

    尚学堂学习日记Day1 #今天开始写学习博客记录自己学习java的点滴成长历程,希望能成为学弟学妹们的前车之鉴. 先大概的自我介绍下,我原本从事的是网络工程师,学习的是Cisco(思科)并拥有CCNP ...

  7. Java学习日记8:文件上传工具类的实现和服务器给客户端发送图片

    文件上传的工具类: 每次文件上传要写很多东西,把这些封装成一个工具类,以后用起来就会方便很多. 先创建一个类存储上传文件的信息: package com.upload; /*** 每上传成功一个文件的 ...

  8. 黑马程序员--Java学习日记之网络编程

     ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.网络编程概述 1.计算机网络 计算机网络是指将地理位置不同的具有独立功能的多台计算机及 ...

  9. 2019年新版Java学习路线图(内含大纲+视频+工具+书籍+面试)

    一.2019新版Java学习路线图---每阶段市场价值及可解决的问题 二.2019新版Java学习路线图---学习大纲及各阶段知识点 三.2019新版Java学习路线图---升级后新增知识点一览 四. ...

  10. 2019年7月22日 学习日记

    说实话今天是二十三号,不过我在补二十二号的博客,现在已经是晚上了,今天也发生了很多有趣的事情比如遇到了打伞也没有用的雨,倔强的我就算全身湿透也不愿放弃外出欣赏风景的机会,于是我买了一身新衣服加人字拖, ...

最新文章

  1. 【php】 PHP 支持 9 种原始数据类型
  2. Istio Pilot源码浅析
  3. 只适合小模型小训练集的交叉验证
  4. python的random模块生成随机数
  5. 计算机考研学长学什么,研究生学长浅谈考研心得
  6. 思想实验(逻辑思维)解题
  7. mysql的count报错_Mysql报错注入原理分析(count()、rand()、group by)
  8. LeetCode 576. 出界的路径数(动态规划)
  9. 【Flink】Flink 报错 exited with a non-zero exit code 1
  10. redis的批量操作命令pipeline(PHP实现)
  11. spring源代码分析
  12. Linux 删除分区
  13. 第六章、面向对象的PHP
  14. script加密解密工具下载
  15. Kubernetes集群部署篇( 一)
  16. Android AsyncTask 接口回调
  17. 【python爬虫】爬取深圳证券业协会公布的营业部数据并对pdf文件进行解析
  18. 基于线性表的图书信息管理系统
  19. bat脚本--android adb一键截图
  20. 深度学习loss函数理解

热门文章

  1. 如何在 Mac 上的“终端”中执行命令和运行工具?
  2. 在 Mac 上如何使用时间机器备份文件?
  3. 「Mac新手必备」解决 Mac 无法启动、开机的问题
  4. 「Photoshop 入门教程」如何在Mac版 Photoshop 中打开图像?
  5. 如何在 M1 Mac 上运行Intel架构的应用程序?
  6. 如何将PDF转换为DOCX?
  7. 深度学习入门者选择开源框架丨硬创公开课群友问答
  8. linux命令大全之ss命令详解(获取socket统计信息)
  9. pl/sql developer 快捷操作: 显示不可见字符 显示历史sql语句 拷贝整个sql窗口的语句至新的sql窗口...
  10. 项目清理和删除svn信息(转)