Java开发——16.常用类(Scanner、Object、String、StringBuffer、StringBuilder)

简介: Scanner:一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。

Scanner 数据扫描:

一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。

API


Scanner需要掌握的方法:

image.png


Scanner扫描输入对象:


//常用场景:扫描输入对象Scannersc=newScanner(System.in);//获取在控制台输入的内容System.in扫描输入流//在学习System类的时候会详细解析  -> System.in。...


Scanner中的常用方法:


//hashNext();判断传入的对象中是否还有元素publicstaticvoidmain(String[] args) throwsFileNotFoundException {
//File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。// 注:此处的斜杆为双斜杠,java中的转义字符一般为单斜杠开头。Filefile=newFile("D:\\FileTest\\file1.txt");
Scannersc=newScanner(file,"utf-8"); //此处要抛异常// sc.hasNext()返回值位Boolean型Booleanbl=sc.hasNext();
System.out.println(bl); //判断是否存在内容// 输出file1.txt中的内容while (sc.hasNext()){
Stringcontent=sc.nextLine();
System.out.println(content);
        }
}
//nextLine() / nextInt():next数据类型()publicstaticvoidmain(String[] args) {
Scannersc=newScanner(System.in);
// 1.next() 查找并返回此扫描仪的下一个完整令牌。返回值为:String类型//注:当按下回车的时候,程序终止,只能读取到一个数字,如果出现空格等 只会输出空格之前的内容。System.out.println("请输入数字:");// 输入:123455 58963System.out.println(sc.next());  //输出:123455*///2.nextLine() 将此扫描仪推进到当前行并返回跳过的输入。返回值为:String类型System.out.println("请输入数字:");// 输入:123549 945 6456 1System.out.println(sc.nextLine());  //输出:123549 945 6456 1*/// 3.nextDouble() 将输入的下一个标记扫描为布尔值,并返回该值。 返回值为:double类型System.out.println("请输入数字:");// 输入:123System.out.println(sc.nextDouble());  //输出:123.0}


注意事项:


Scannersc=newScanner(System.in);
System.out.println("请输入年龄:");
sc.next();
System.out.println("请输入名字:");
sc.nextLine();
next()和nextLine()一起使用的时候:会出现在你没有输入名字后直接结束的情况。

image.png

此时是因为:next()会将手动按下的回车当做输入的内容,所以并不是没有办法写入名字,而是因为名字哪里获取到的是回车。

所以建议都使用nextLine()方法:nextLine()方法会获取一行内容!


Scannersc=newScanner(System.in);
System.out.println("请输入年龄:");
sc.nextLine();
System.out.println("请输入名字:");
sc.nextLine();


Object所有类的基类(又名,超类):

每个类都由Object作为超类。 所有对象(包括数组)都实现了这个类的方法。

API

image.png


方法简截:


publicStringtoString()返回对象的字符串表示形式。一般来说,toString方法返回一个对象的字符串。结果应该是一个简明扼要的表达,容易让人阅读。建议所有子类覆盖此方法。该toString类方法Object返回一个由其中的对象是一个实例,该符号字符`的类的名称的字符串@”和对象的哈希码的无符号的十六进制表示。换句话说,这个方法返回一个等于下列值的字符串:getClass().getName() +'@'+Integer.toHexString(hashCode())


此处只要知道Object类是所有类的超类即可,其子类可以直接调用Object方法,或者自行重写Object中的方法;例如,toString()方法,在Object类中是直接返回对象的地址;在输出的时候,默认是使用toString()方法的。


toString方法


//Java中sout()输出时,默认会加上toString()       Stringstr="小红";
//System.out.println(str);输出的是一样的效果System.out.println(str.toString());
Stringstr2[] = {"1","2","3","4"};
System.out.println(str2.toString());
/*小红[Ljava.lang.String;@7ea987ac*/




String 字符串类:

String类操作字符串。

String类代表字符串。Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。

String的值在创建后不能被更改。 因为String对象是不可变的,它们可以被共享。

API

String类的常用方法:


重点掌握:

indexOf()方法,返回指定字符第一次出现的字符串内的索引。

equals()方法,将此字符串与指定对象进行比较。


StringBuilder 字符串缓冲区,可存储可变的字符串;

一个可变的字符序列。 此类提供与StringBuffer相同的API,但不保证同步

此类设计用作简易替换为StringBuffer在正在使用由单个线程字符串缓冲区的地方(如通常是这种情况)。

在可能的情况下,建议使用这个类别优先于StringBuffer ,因为它在大多数实现中将更快。

API


StringBuffer和StringBuilder最主要的方法是append和insert方法,它们被重载以便接受任何类型的数据。每个都有效地将给定的数据转换为字符串,然后将该字符串的字符附加或插入到字符串缓冲区。



append方法总是在缓冲区的末尾添加这些字符;insert方法将insert添加到指定点。


StringBuffer的常用方法:



StringBuffer 字符串缓冲区,可存储可变的字符串,线程安全。

线程安全,可变的字符序列。字符串缓冲区就像一个String ,但可以修改。在任何时间点,它包含一些特定的字符序列,但可以通过某些方法调用来更改序列的长度和内容。

字符串缓冲区可以安全地被多个线程使用。

API


String字符串操作总结:


String与StringBuffer和StringBuilder的区别:

String是字符串不可变;

StringBuffer和StringBuilder是字符串可变,字符串缓冲区。


StringBuffer和StringBuilder的区别:

StringBuffer线程安全;

StringBuilder线程不安全,但是速度较StringBuffer更快。


建议自学API,此处仅做指引以及注意事项的辨析,自学能力很重要。

目录
打赏
0
0
0
0
14
分享
相关文章
智慧产科一体化管理平台源码,基于Java,Vue,ElementUI技术开发,二开快捷
智慧产科一体化管理平台覆盖从备孕到产后42天的全流程管理,构建科室协同、医患沟通及智能设备互联平台。通过移动端扫码建卡、自助报道、智能采集数据等手段优化就诊流程,提升孕妇就诊体验,并实现高危孕产妇五色管理和孕妇学校三位一体化管理,全面提升妇幼健康宣教质量。
40 12
菜鸟之路day02-04拼图小游戏开发一一JAVA基础综合项目
本项目基于黑马程序员教程,涵盖面向对象进阶、继承、多态等知识,历时约24小时完成。项目去除了登录和注册模块,专注于单机游戏体验。使用Git进行版本管理,代码托管于Gitee。项目包含窗体搭建、事件监听、图片加载与打乱、交互逻辑实现、菜单功能及美化界面等内容。通过此项目,巩固了Java基础并提升了实际开发能力。 仓库地址:[https://gitee.com/zhang-tenglan/puzzlegame.git](https://gitee.com/zhang-tenglan/puzzlegame.git)
44 6
【潜意识Java】javaee中的SpringBoot在Java 开发中的应用与详细分析
本文介绍了 Spring Boot 的核心概念和使用场景,并通过一个实战项目演示了如何构建一个简单的 RESTful API。
43 5
|
5月前
|
java基础(13)String类
本文介绍了Java中String类的多种操作方法,包括字符串拼接、获取长度、去除空格、替换、截取、分割、比较和查找字符等。
62 0
java基础(13)String类
【c++丨STL】string类的使用
本文介绍了C++中`string`类的基本概念及其主要接口。`string`类在C++标准库中扮演着重要角色,它提供了比C语言中字符串处理函数更丰富、安全和便捷的功能。文章详细讲解了`string`类的构造函数、赋值运算符、容量管理接口、元素访问及遍历方法、字符串修改操作、字符串运算接口、常量成员和非成员函数等内容。通过实例演示了如何使用这些接口进行字符串的创建、修改、查找和比较等操作,帮助读者更好地理解和掌握`string`类的应用。
96 2
|
4月前
|
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
本文深入探讨了Java中方法参数的传递机制,包括值传递和引用传递的区别,以及String类对象的不可变性。通过详细讲解和示例代码,帮助读者理解参数传递的内部原理,并掌握在实际编程中正确处理参数传递的方法。关键词:Java, 方法参数传递, 值传递, 引用传递, String不可变性。
94 1
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
String类-知识回顾①
这篇文章回顾了Java中String类的相关知识点,包括`==`操作符和`equals()`方法的区别、String类对象的不可变性及其好处、String常量池的概念,以及String对象的加法操作。文章通过代码示例详细解释了这些概念,并探讨了使用String常量池时的一些行为。
String类-知识回顾①
Java零基础-StringBuffer 类详解
【10月更文挑战第9天】Java零基础教学篇,手把手实践教学!
112 2
让星星月亮告诉你,通过反射创建类的实例对象,并通过Unsafe theUnsafe来修改实例对象的私有的String类型的成员属性的值
本文介绍了如何使用 Unsafe 类通过反射机制修改对象的私有属性值。主要包括: 1. 获取 Unsafe 的 theUnsafe 属性:通过反射获取 Unsafe类的私有静态属性theUnsafe,并放开其访问权限,以便后续操作 2. 利用反射创建 User 类的实例对象:通过反射创建User类的实例对象,并定义预期值 3. 利用反射获取实例对象的name属性并修改:通过反射获取 User类实例对象的私有属性name,使用 Unsafe`的compareAndSwapObject方法直接在内存地址上修改属性值 核心代码展示了详细的步骤和逻辑,确保了对私有属性的修改不受 JVM 访问权限的限制
86 4

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等