目录

常用API:

Scanner:

object类:

to String()方法:

equals()方法:

String类:

String类创建对象的特点:

String练习之模拟用户登录:

String练习之字符串遍历:

String练习之数组元素拼接:

String练习之字符串反转:

StringBuilder概述及其与String的区别:

StringBuilder构造方法:

StringBuilder常用方法:

链式反应:

反转功能:

StringBuilder与String的相互转换:

StringBuilder练习之数组元素拼接成指定格式字符串:

StringBuilder练习之字符串反转:


常用API:

API:应用程序编程接口

A:打开帮助文档

B:点击显示,找到索引,看到输入框

C:你要学习什么内容,你就在框框里面输入什么内容

举例:Random

D:看包

java.lang包下的类在使用的时候是不需要导包的

E:看类的描述

Random类是用于生成随机数的类

F:看构造方法

Random():无参构造方法

Random r = new Random();

G:看成员方法

public int nextInt(int n):产生的是一个[0,n)范围内的随机数

调用方法:

看返回值类型:人家返回什么类型,你就用什么类型接收

看方法名:名字不要写错了

看形式参数:人家要几个参数,你就给几个,人家要什么数据类型的,你就给什么数据类型的

int number = r.nextInt(100);

Scanner:

需求:通过Scanner获取字符串数据

Scanner:用于获取键盘录入数据。(基本数据类型,字符串数据)

public String nextLine():获取录入字符串数据

package SC;
/*
@author: MR.chan
@file: Scanner01.py
@time: 2020/03/29
@desc:
*/import java.util.Scanner;public class Scanner01 {public static void main(String[] args) {//录入数据Scanner sc = new Scanner(System.in);
//接收数据System.out.println("请输入一个字符串");String line = sc.nextLine();System.out.println("line:"+line);}
}

object类:

Object:是类层次结构的根类,所有的类都直接的或者间接的继承自该类。

构造方法:object()

to String()方法:

直接输出对象名,输出底层调用的是对象的to string()方法

查看API,我们发现建议所有子类都重写to String()

如何重写该方法?可自动生成

public class ObjectDemo {public static void main(String[] args) {Student s = new Student();s.setName("林青霞");s.setAge(30);System.out.println(s);//若未重写to String()则输出地址值System.out.println(s.toString());//底层方法/*public void println(Object x) { //Object x = s;String s = String.valueOf(x);synchronized (this) {print(s);newLine();}}public static String valueOf(Object obj) { //Object obj = x;return (obj == null) ? "null" : obj.toString();}*/}
}
public class Student {
private String name;
private int age;
public Student(){}
public Student(String name,int 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 "Student{" +"name='" + name + '\'' +", age=" + age +'}';}
}

输出结果:

Student{name='林青霞', age=30}
Student{name='林青霞', age=30}

equals()方法:

==:

可以比较基本数据类型,比较基本数据类型的时候比较的是基本数据类型的值是否相同

也可以比较引用数据类型,比较引用数据类型的时候比较的是引用数据类型的地址是否相等

通过查看API,我们找到了比较对象是否相等的方法:

public boolean equals(Object obj)

Object类中 的equals()方法默认的是比较对象的地址是否相等

要比较对象是否相等,就要重写方法

package SC;
/*
@author: MR.chan
@file: Student.py
@time: 2020/03/29
@desc:
*/import java.util.Objects;public class Student {
private String name;
private int age;
public Student(){}
public Student(String name,int age){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 "Student{" +"name='" + name + '\'' +", age=" + age +'}';}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Student student = (Student) o;return age == student.age &&Objects.equals(name, student.name);}
}
package SC;
/*
@author: MR.chan
@file: ObjectDemo.py
@time: 2020/03/29
@desc:
*/public class ObjectDemo {public static void main(String[] args) {Student s = new Student();s.setName("林青霞");s.setAge(30);Student s2 = new Student("林青霞",30);System.out.println(s == s2);//falseSystem.out.println(s.equals(s2));//true}
}

输出结果:

false
true

String类:

String:

代表字符串类。

由多个字符组成的一串数据

字符串的本质就是一个字符数组

构造方法:

String(String original):把字符串数据封装成字符串对象

String(char[] value):把字符数组的数据封装成字符串对象

String(char[] value, int index, int count):把字符数组的一部分数据封装成字符串对象

public class String_01 {public static void main(String[] args) {String s1 = new String("hello");System.out.println(s1);System.out.println("-------");char[] a2 = {'l','o','v','e'};String s2 = new String(a2);System.out.println(s2);System.out.println("-------");String s3 = new String(a2,0,a2.length-1);System.out.println(s3);System.out.println("-----");}
}

输出结果:

hello
-------
love
-------
lov
-----

String类创建对象的特点:

A:通过构造方法创建对象

B:通过直接赋值的方式创建对象

这两种方式的创建是有区别的

通过构造方法创建的字符串对象是在堆内存。

通过直接赋值的方式创建的字符串对象是在方法区的常量池

public class String_01 {public static void main(String[] args) {String s1 = new String("hello");String s2 = new String("hello");String s3 = "hello";String s4 = "hello";System.out.println(s1 == s2);System.out.println(s1 == s3);System.out.println(s3 == s4);}
}

输出结果:

false
false
true

图解如下:

String练习之模拟用户登录:

需求:模拟登录,给三次机会,并提示还有几次

分析:

A:定义两个字符串对象,用于存储已经存在的用户名和密码

B:键盘录入用户名和密码

C:拿键盘录入的用户名和密码去跟已经存在的用户名和密码进行比较

如果内容相同,就提示登录成功

如果内容不同,就提示登录失败,并提示还有几次机会

public boolean equals(Object anObject):比较字符串的内容,严格区分大小写(用户名和密码)

public boolean equalsIgnoreCase(String anotherString):比较字符串的内容,不考虑大小写(验证码)

import java.util.Scanner;public class test01 {public static void main(String[] args) {String admin = "admin";String password = "admin";Scanner sc = new Scanner(System.in);for(int x = 2;x>=0;x--){System.out.println("请输入用户名:");String adn = sc.nextLine();System.out.println("请输入密码:");String psw = sc.nextLine();if(x==0){System.out.println("您的账户已被锁定");}else {if(adn.equals(admin)&&psw.equals(password)){System.out.println("登陆成功");break;}else {System.out.println("用户名密码错误,你还有"+x+"机会");}}}}
}

String练习之字符串遍历:

需求:遍历字符串(获取字符串的每一个字符)

假如让我们来提供方法,我们应该提供一个根据索引返回指定位置的字符的办法

返回值:char

形式参数:int index

public char charAt(int index):返回指定索引处的值

public class Stringtest02 {public static void main(String[] args) {String s = "java";for (int x =0;x<s.length();x++) {System.out.println(s.charAt(x));}}
}

输出结果:

j
a
v
a

String练习之数组元素拼接:

需求:把数组中的数据按照指定格式拼接成一个字符串

举例:int【】arr = {1,2,3};

输出结果:【1,2,3】

分析:

A:定义一个int类型的数组

B:写方法实现把数组中中的元素按照指定的格式

C:调用方法

D:输出结果

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

输出结果:

[1, 2, 3]

String练习之字符串反转:

需求:字符串反转

举例:键盘录入“abc”

输出结果:“cba”

分析:

A:键盘录入字符串数据

B:写方法实现字符串数据的反转

把字符串倒着遍历,再把每一个得到的字符拼接成一个字符串

C:调用方法

D:输出结果

import java.util.Scanner;public class Stringtest04 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一个字符串:");String s = sc.nextLine();System.out.println(reverse(s));}public static String reverse(String s){String s1 = "";for (int x = s.length()-1;x>=0;x--){s1+=s.charAt(x);}return s1;}
}

输出结果:

请输入一个字符串:
abc
cba

StringBuilder概述及其与String的区别:

StringBuilder:是一个可变的字符串。字符串缓冲区类。

String和StringBuilder的区别:

String的内容是固定的

StringBuilder的内容是可变的

+=拼接字符串耗费内存原因:

每次拼接都会产生新的字符串对象,而利用StringBuilder来拼接字符串自始至终用的都是同一个StringBuilder容器

StringBuilder构造方法:

public StringBuilder()

public StringBuilder(String str)

public class StringBuilderDemo {public static void main(String[] args) {StringBuilder SB = new StringBuilder();System.out.println("SB:"+SB);System.out.println(SB.length());System.out.println("-----------");StringBuilder sb2 = new StringBuilder("helloworld");System.out.println("sb2:"+sb2);System.out.println(sb2.length());System.out.println("-----------");}
}

输出结果:

SB:
0
-----------
sb2:helloworld
10
-----------

StringBuilder常用方法:

添加功能:

public StringBuilder append(任意类型)

反转功能:

public StringBuilder reverse()

public class StringBuilderDemo {public static void main(String[] args) {StringBuilder SB = new StringBuilder();StringBuilder sb2 = SB.append("HELLO");System.out.println("sb2:"+sb2);System.out.println(sb2.length());System.out.println("-----------");System.out.println("SB:"+SB);System.out.println(SB.length());System.out.println("-----------");SB.append("WORLD");SB.append(100);SB.append(true);System.out.println("SB:"+SB);}
}

输出结果:

sb2:HELLO
5
-----------
SB:HELLO
5
-----------
SB:HELLOWORLD100true

链式反应:

如下程序中SB.append().append()

反转功能:

.reverse();

public class StringBuilderDemo {public static void main(String[] args) {StringBuilder SB = new StringBuilder();SB.append("hello").append("world").append(100).append(true);System.out.println(SB);SB.reverse();System.out.println(SB);}
}

输出结果:

helloworld100true
eurt001dlrowolleh

StringBuilder与String的相互转换:

StringBuilder--转String

public class StringBuilderDemo {public static void main(String[] args) {StringBuilder sb = new StringBuilder();sb.append("hello");String s = sb.toString();System.out.println(s);}
}

String--转StringBuilder

public class StringBuilderDemo {public static void main(String[] args) {String s = "hello";StringBuilder s2 =new  StringBuilder(s);System.out.println(s2);}
}

StringBuilder练习之数组元素拼接成指定格式字符串:

需求:把数组中的数据按照指定格式拼接成一个字符串

举例:int【】arr = {1,2,3};

输出结果:【1,2,3】

public class test05 {public static void main(String[] args) {int[] arr = {1, 2, 3};System.out.println(arr1(arr));}public static StringBuilder arr1(int[] arr) {StringBuilder s = new StringBuilder();s.append("[");for (int x = 0; x < arr.length; x++) {if (x == arr.length - 1) {s.append(arr[x]);} else {s.append(arr[x]).append(", ");}}s.append("]");
//        String s2 = s.toString();return s;}
}

StringBuilder练习之字符串反转:

import java.util.Scanner;public class test06 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一个字符串:");String s = sc.nextLine();System.out.println("result:"+myreverse(s));}public static StringBuilder myreverse(String s ){
//        StringBuilder sb = new StringBuilder(s);
//        sb.reverse();String ss = sb.toString();
//        return sb;return new StringBuilder(s).reverse();}
}

Java基础篇之常用类(1)相关推荐

  1. Java基础篇:常用类

    文章目录 1.字符串相关的类 1.1 String类及常用方法 String的特性 String对象的创建 字符串对象是如何存储的 String使用陷阱 String常用方法 1.2 StringBu ...

  2. Java基础---API概述---常用类(Object类/String类)---equals和==

    API概述 API:application programming interface,应用程序编程接口 用于规定方法名称的规则集合,定义了方法的修饰符.返回值类型.方法的名称.方法的参数列表.方法的 ...

  3. Java基础篇之LinkedList类

    LinkedList类扩展AbstractSequentialList并执行List接口.它提供了一个链接列表数据结构.它具有如下的两个构造函数,说明如下: LinkedList( ) LinkedL ...

  4. 【JAVA基础篇】String类详解

    昨天参加了一场机试,发现自己居然对String类的api不熟了,所以今天来总结一下(基于JDK1.8). 1.父类和实现的接口 没有父类,或者说父类是Object 接口:Serializable.Co ...

  5. JAVA基础篇【工具类】MathUtil 数学运算辅助类TG【20130324整理】

    数学运算辅助类,希望对大家有所帮助 import java.math.BigDecimal; /** * 数学运算辅助类. * * @author Elfy * @date 2013年03月21日 * ...

  6. 菜鸟学习笔记:Java基础篇7(包装类、时间相关类、文件类、异常处理类)

    菜鸟学习笔记:Java其他常用类 基本数据类型包装类 时间处理和文件处理相关类 Date时间类 SimpleDateFormat Calendar日历类 文件类 异常机制 异常的概念 Java异常处理 ...

  7. Java基础篇——类与子类

    1. 什么是类,什么是子类? 类:类是Java程序的基本要素,一个Java应用程序就是由若干个类所构成的.类是Java语言中最重要的"数据类型". 子类:由继承得到的类叫子类. 引 ...

  8. 菜鸟学习笔记:Java基础篇6(数组、字符串)

    菜鸟学习笔记:Java常用类(数组.字符串) 数组 概述 数组的定义 二维数组 数组查找和排序 查找 排序 数组运用--字符串 不可变字符序列(String) 可变字符序列(StringBuilder ...

  9. 菜鸟学习笔记:Java基础篇5(抽象类与接口、回调函数、内部类)

    菜鸟学习笔记:Java面向对象篇下 抽象类 接口 回调函数 内部类 成员内部类 匿名内部类 抽象类 通过前面知识的学习,抽象类这个概念应该不难理解,但比较容易和后面要说的接口混淆,而且在面试中也比较爱 ...

最新文章

  1. 事件冒泡之cancelBubble和stoppropagation的区别
  2. Java基本数据类型的传值
  3. 前端学习(3263):js中undefine
  4. 【SpringMVC】SpringMVC系列6之@CookieValue 映射请求Cookie 值
  5. (译)如何使用GameCenter制作一个简单的多人游戏教程:第一部分
  6. 配色方案|平板羽毛集,为你的下个作品做安排
  7. python 全局变量_python程序中用类变量代替global 定义全局变量
  8. TextView属性的静态使用与动态使用
  9. 刚刚,百度AI公布最新进展:Apollo2.0,新课程,设全球研究院
  10. 问题六十八: 着色模型(shading model)(0)——《Ray Tracing from the Ground Up》代码的移植
  11. Codeforces Round #567 (Div. 2)
  12. 凤凰网php,凤凰网房产频道招聘 web 前端工程师、PHP 工程师 15-25k,欢迎简历来砸~...
  13. UWP 全屏与退出全屏
  14. 前后端交互、Node、npm、Express、mysql基础
  15. 学而时娱之,不亦乐乎
  16. 用户画像的起源:The origin of personas
  17. Bert模型(一)安装及问题解决(基本每一步都有问题)
  18. HbuilderX下载安装教程
  19. 为什么99%的价值投资者最后都会死去?
  20. 微信图片,此图片来自微信公众平台未经允许不可引用解决方案

热门文章

  1. 用Java做s71200的上位机_S7-1200如何通过CM1241和上位机建立通讯?-工业支持中心-西门子中国...
  2. 「分治法」棋盘覆盖问题
  3. ssm毕设项目创梦宝大学生创业众筹平台cds88(java+VUE+Mybatis+Maven+Mysql+sprnig)
  4. 【苹果相册推iMessage】软件安装Websocket可以在浏览器顶用于支持两个通讯并使用它
  5. 【工具代码】COCO检测预测结果转换为txt标准格式
  6. 搞定显卡导致死机花屏故障
  7. 利用python编写钉钉机器人工作日提醒
  8. eis电子防抖好还是光学防抖好_全系没有OIS光学防抖的魅族17,全场景横置相机模组意义在哪里?...
  9. 有效控制新闻内容的图片的尺寸-风讯CMS教程--div下图片自适应解决方法
  10. 解决localhost和IP访问在IE内核浏览器中访问不一致的办法