Java中的Scanner类和String类

1:Scanner的使用(了解)
    (1)在JDK5以后出现的用于键盘录入数据的类。

(2)构造方法:

A:讲解了System.in这个东西。
            它其实是标准的输入流,对应于键盘录入
        B:构造方法
            InputStream is = System.in;

Scanner(InputStream is)
        C:常用的格式
            Scanner sc = new Scanner(System.in);
    (3)基本方法格式:
        A:hasNextXxx() 判断是否是某种类型的
        B:nextXxx()    返回某种类型的元素
    (4)要掌握的两个方法
        A:public int nextInt()
        B:public String nextLine()
    (5)需要注意的小问题
        A:同一个Scanner对象,先获取数值,再获取字符串会出现一个小问题。
        B:解决方案:
            a:重新定义一个Scanner对象
            b:把所有的数据都用字符串获取,然后再进行相应的转换

2:String类的概述和使用(掌握)
    (1)多个字符组成的一串数据。
        其实它可以和字符数组进行相互转换。
    (2)构造方法:
        A:public String()
        B:public String(byte[] bytes)
        C:public String(byte[] bytes,int offset,int length)
        D:public String(char[] value)
        E:public String(char[] value,int offset,int count)
        F:public String(String original)
        下面的这一个虽然不是构造方法,但是结果也是一个字符串对象
        G:String s = "hello";
    (3)字符串的特点
        A:字符串一旦被赋值,就不能改变。
            注意:这里指的是字符串的内容不能改变,而不是引用不能改变。
        B:字面值作为字符串对象和通过构造方法创建对象的不同
            String s = new String("hello");和String s = "hello"的区别?

      一个是在堆上创建,一个是在方法区的常量区创建。

      其中String s = new String("hello")是在堆上创建,再创建的过程中,回去方法区查找“hello”的存在,若存在即返回对应的内存地址给堆上的对象。若不存在就创建,再返回创建后的地址值。

        String s = "hello"是直接去查找方法区,若存在就返回地址值给s,若不存在,则创建后再返回。
    (4)字符串的面试题(看程序写结果)

   注意: “==”比较的是对象的地址值,equals是object类中的方法,默认比较的也是地址值,一般情况下,子类都会重写equals方法。
        A:==和equals()
            String s1 = new String("hello");
            String s2 = new String("hello");
            System.out.println(s1 == s2);// false
            System.out.println(s1.equals(s2));// true

String s3 = new String("hello");
            String s4 = "hello";
            System.out.println(s3 == s4);// false
            System.out.println(s3.equals(s4));// true

String s5 = "hello";
            String s6 = "hello";
            System.out.println(s5 == s6);// true
            System.out.println(s5.equals(s6));// true
        B:字符串的拼接
            String s1 = "hello";
            String s2 = "world";
            String s3 = "helloworld";
            System.out.println(s3 == s1 + s2);// false
            System.out.println(s3.equals((s1 + s2)));// true

System.out.println(s3 == "hello" + "world");// false 这个我们错了,应该是true
            System.out.println(s3.equals("hello" + "world"));// true
    (5)字符串的功能(自己补齐方法中文意思)
        A:判断功能
            boolean equals(Object obj)
            boolean equalsIgnoreCase(String str)
            boolean contains(String str)
            boolean startsWith(String str)
            boolean endsWith(String str)
            boolean isEmpty()
        B:获取功能(查询功能)
            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)
            String substring(int start)
            String substring(int start,int end)
        C:转换功能
            byte[] getBytes()
            char[] toCharArray()
            static String valueOf(char[] chs)
            static String valueOf(int i)
            String toLowerCase()
            String toUpperCase()
            String concat(String str)
        D:其他功能
            a:替换功能
                String replace(char old,char new)
                String replace(String old,String new)
            b:去空格功能
                String trim()
            c:按字典比较功能
                int compareTo(String str)
                int compareToIgnoreCase(String str)
    (6)字符串的案例
        A:模拟用户登录
        B:字符串遍历
        C:统计字符串中大写,小写及数字字符的个数
        D:把字符串的首字母转成大写,其他小写
        E:把int数组拼接成一个指定格式的字符串
        F:字符串反转
        G:统计大串中小串出现的次数

时间: 2024-11-08 03:33:50

Java中的Scanner类和String类的相关文章

全面解释java中StringBuilder、StringBuffer、String类之间的关系

http://www.jb51.net/article/33398.htm String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间,StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象,StringBuffer和StringBuilder类功能基本相似 1. String 类  String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不

java中StringBuilder、StringBuffer、String类之间的关系

今天在CSDN的高校俱乐部里看到了"Java基础水平測试(英文)".感觉自己学了java这么久,想看下自己的java水平究竟是个什么样.測试结果就不说了,反正是慘不忍睹. 看了一下结果分析,关于StringBuilder.StringBuffer.String类的三道题所有答错.所以就查阅了一些资料记录一下. String的值是不可变的,这就导致每次对String的操作都会生成新的String对象.不仅效率低下,并且大量浪费有限的内存空间,StringBuffer是可变类.和线程安全的

Java中如何使封装自己的类,建立并使用自己的类库?

转自:http://blog.csdn.net/luoweifu/article/details/7281494 随着自己的编程经历的积累会发现往往自己在一些项目中写的类在别的项目中也会有多次用到.你肯定会想:如何自己的写的一些常用的类积累起来,生成自己的类库?如果是这样的话,很庆幸,你遇到通道中人了,因为我也是这样做的.下面就介绍一下我是怎么做的吧 一.先来明白一下关于classpath和path的概念 path是java中用来进行编译和运行的程序所在的路径,而classpath是类所在的路径

JavaSE入门学习27:Java常用类之String类(上)

一String类 字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串.在程序开 发中字符串无处不在,如用户登陆时输入的用户名.密码等使用的就是字符串.其实,在前面的章节中我们就已经使 用了字符串,例如我们在控制台中输出的 "Hello World"等. 在Java中,字符串被作为 String 类型的对象处理. String 类位于 java.lang 包中.默认情况下,该包被自动导入 所有的程序. java.lang.Strin

java中可以让实例改变了类Feild(java这么干就是一个错误,你看到了就当做是类在该修改或这个类Feild)

class Person { public String name;//定义实例Feild public static int eyeNum;//定义类Feild } public class PersonTest { public static void main(String[] args) { System.out.println("Person的eyeNum的类Feild值是:" + Person.eyeNum); } } 运行: [[email protected] java

java中只能有一个实例的类的创建

Java中,如果我们创建一个类,想让这个类只有一个对象,那么我们可以 1:把该类的构造方法设计为private 2:在该类中定义一个static方法,在该方法中创建对象 package test; /* * 有时候我们希望一个类在任何时候都只有一个实例,这时候可以把该类设计为单例模式. * 要将一个类设计为单例模式,需要: * 1:把该类的构造方法的访问修饰符生命为private * 2:然后在该类中定义一个static方法,在该方法中创建类的对象 * * */ public class Sin

java常用类之String类

public class StringTest{ /* * 1.字符串类: String . * 1) 什么是字符串? * 用一对双引号将一个或多个字符括起来组成的字符系列.例如: "A" "ABC" * 特殊的串: 一对连续的双引号.即: "" ,它称之为空串.也称之为长度为0的字符串. * * 2) 字符串的特性: * a) 字符串属于引用类型,一个字符串就是一个对象. * b) 字符串是不变的. * c) 字符串中每一个字符都有一个索引号(

C#中 StringBuilder类 与 String类的区别---(转)

  在找工作的时候,去了些公司,避免不了要面试和笔试.不过一般最起初的是笔试.我印象中有这样有一道题目:StringBuilder类与 String类的区别?那时候我不太清楚这两个类的区别,今天在看代码的时候,看到同事也用了StringBuilder类.于是我就上网查查了资料,也想总结下StringBuilder类与 String类的区别.学计算机语言的人一定要明白哦,说不定那天你去找工作了,也会遇到这个问题呢. String 对象是不可改变的.每次使用 System.String 类中的方法之

Java中的 Scanner简述(企业笔试在线编程的输入控制)

摘要: 最近进行企业在线笔试时,发现企业的笔试平台大都使用赛码网(虽然槽点很多),而且在线编程都需要使用Scanner来读取程序的输入,因此,笔者就在先辈们的成果上对Scanner做了一份全新的.详细的总结.我们知道,java.util.Scanner是Java5的新特征,主要功能是简化文本扫描.这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java API文档中列举了大量的API方法,但是都不怎么地,特此简述. 版权声明: 本文原创作者:书呆子Rico 作者博客地址:http

tchar 输入输出类 和 string 类 函数简单说明 总结各种前缀后缀

标准输入输出printf类_tprintf : 类同printf_tprintf_l : 类同printf, 但是"_l"表示第二个参数是一个locale.locale是操作系统对语言设定的参数, 这个会影响ANSI字符的语言识别, 在Unicode下应该是无差别的_tprintf_s : 类图printf, 但是和_tprintf相比, _tprintf_s多会做一些检查工作.如果你的"format string"是动态的, 这个能帮助你._tprintf_s_l