Java8提供了四千多个基础类,通过这些基础类库可以提高开发效率,使用它们编写好的类进行开发,不用自己去写好这个类,这个方法是干什么的,极大程度的降低了开发难度,为Java开发

带来了极大的便利。本文将介绍一些常用的类,经常的使用这些类,能够让我们不用去经常查阅API去寻找这些方法,节省开发时间,总的来说还是多敲,多练。

一、Scanner类

  程序都是为用户开发的,开发好的程序需要用户的键盘输入、鼠标操作等。scanner类能够让我们获得用户的输入。

1.1运行Java程序的参数

  public static void main(String[] args){...}

public修饰符:Java类编译好后由JVM虚拟机调用,为了可以自由的调用这个方法,用public修饰符把这个方法暴露出来,随意调用

static修饰符:JVM调用这个主方法时,不用去创建这个类的实例,直接通过对象来调用这个主方法。

void返回值:因为该方法被JVM调用,该方法的返回值返回给JVM,无意义,所以main()方法无返回值。

args形参:谁调用该方法,就负责为形参传值,

1.3使用scanner获得键盘输入

hasNextxxx():此扫描器输入信息中的下一个标记可以解释为默认基数中的一个 xxx(int,long,short)值,则返回 true。

nextXXX(): 将输入信息的下一个标记扫描为一个 byte。。获取下一个输入项

useDelimiter("xxx"): 将此扫描器的分隔模式设置为指定模式。/n 回车符   空格符

package WPS;

import java.util.Scanner;

/*
* 题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的天数加起来,然后再加上5天即本年的第几天,
特殊情况,闰年且输入月份大于3时需考虑多加一天。
*/
public class Exercise_14th {
public static int analysis(int a1,int a2,int a3) {
//设置一个参数,用来接收以前几个月的天数
int n=0;
//先给出一个平年的数组,数组里面有今年每个月的天数,然后判断今年是不是闰年,是的话把二月份的天数改为29天
//数组的下标是从零开始的,所以从1开始设置每个月的天数
int month[]=new int[]{0,31,28,31,30,31,30,31,31,30,31,30,31};
//判断今年是不是润年,是的话二月就会有28天
if(a1%400==0||a1%4==0&&a1%4==0) {
month[2]=29;
}
//把之前几个月的天数全部加起来,遍历这个数组即可
for(int i=0;i<a2;i++) {
n=month[i]+n;
}
return n+a3;
}
public static void main(String[] args) {
//先让用户输入年月日
Scanner scann = new Scanner(System.in);
System.out.println("请输入当前的年月日:年-月-日");
//输入的年月日都是数字类型的,所以输入的下个类型是int类型的
int a1 = scann.nextInt();
int a2=scann.nextInt();
int a3=scann.nextInt();
scann.close();
int i=0;
i=analysis(a1, a2, a3);
System.out.println("今天是"+a1+"年的第"+i+"天");
}
}

二、Object类

  object类是所有类的父类,所有任何对象都可以调用object类的方法,object类由几个常用的方法:

Boolean equals(object obj): 指示其他某个对象是否与此对象“相等”。

procted void finalize():当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

Class<?> getClass():获得此对象的运行时类。

int hashCode():返回此对象的哈希码值;在默认情况下,是根据对象的地址值来计算的,但是很多类都重写了object类的hashCode()方法。

String to String():返回该对象的字符串表示。

三、最常用的String类

  String类是不可变类,就是一个string对象被创建以后,包含在这个对象中的字符序列就不可以改变了,知道这个对象没有被任何引用,被垃圾回收机制销毁。

  StringBuffer对象代表一个字符序列可变的字符串,当这个对象被创建后,通过StringBuffer提供的方法,append()、insert()、reverse()、setCharAt()、setLength();调试成了最终的字符串后,

就可以通过它的tostring()方法转换成一个String对象

  StringBuilder:跟上面的类基本相似,就是上面的类是线程安全的,这个类没有实现线程安全功能,所以性能越高。

  创建一个String对象

  String():创建一个包含0个字符序列的String对象。ps:并不是返回null

  String(byte[] bytes, Charset charset) :  通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String

  String(byte[] bytes, int offset, int length) :  通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String

  String类也提供了大量的方法来操作这个字符串对象:

  char charAt(int index):获取字符串中的指定字符。

package WPS;
/*
* 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
*/
import java.util.Scanner; public class Exercise_serven {
//计算字符串中英文字母的个数,利用string类的charAt(index)方法,返回指定索引处的char值,然后与
//字符表中的数据做出对比,得出字符串中共有多少个字母个数
public static int getEnglishCharCount(String str) {
int count=0;
for(int i=0;i<str.length();i++) {
if((str.charAt(i)>='a'&&str.charAt(i)<='z')||(str.charAt(i)>='A')&&
str.charAt(i)<='Z'){
count++;
}
}
return count;
}
//计算字符串中的空格个数,方法同上
public static int getkonggeCount(String str) {
int count=0;
for(int i=0;i<str.length();i++) {
if(str.charAt(i)==' ') {
count++;
}
}
return count; }
//计算出字符串中的数字个数,方法同上上
public static int getamountCount(String str) {
int count=0;
for(int i=0;i<str.length();i++) {
if(str.charAt(i)>='0'&&str.charAt(i)<='9') {
count++;
}
}
return count;
}
//计算其他字符的个数用字符串长度减掉前三个即可,这里就不做计算了,其他字符有点子多
public static int getOtherCharCount(String str) {
return 0;
}
public static void main(String[] args) {
Scanner scann=new Scanner(System.in);
System.out.println("请输入一条字符串:");
String str = scann.nextLine();
scann.close();
int a = getEnglishCharCount(str);
int b = getkonggeCount(str);
int c = getamountCount(str);
int d=str.length()-a-b-c;
System.out.println("字符串中英文字母的个数为:"+a+"空格为:"+b+"数字为:"+c+"其他字符为"+d);
}
}

  int compareTo(String toanotherString):比较两个字符串的大小,

  String concat(String str):将String对象和str连接在一起。

  Boolean endWith(String suffix):返回该string对象是否以suffix结尾。

  char[] toCharArray():将string对象转换成char数组。

  static String valueOf(X x):将基本类型转换为String对象的方法。

Java基础类的更多相关文章

  1. 【Java】-NO.16.EBook.4.Java.1.007-【疯狂Java讲义第3版 李刚】- Java基础类

    1.0.0 Summary Tittle:[Java]-NO.16.EBook.4.Java.1.007-[疯狂Java讲义第3版 李刚]-  Java基础类 Style:EBook Series:J ...

  2. AWT是Java基础类 (JFC)的一部分,为Java程序提供图形用户界面(GUI)的标准API

    抽象窗口工具包 (Abstract Windowing Toolkit) (AWT)是Java的平台独立的窗口系统,图形和用户界面器件工具包. AWT是Java基础类 (JFC)的一部分,为Java程 ...

  3. java基础类和对象-题

    1.创建一个三角形类,成员变量三边,方法求周长,创建类主类A来测试它. public class Sanjiaoxing { //定义属性 private int a; private int b; ...

  4. Java基础类编程集锦

    1.计算1+2+3+4+5+6+7+8+9的值 package com.neusoft.chapter1; /** * @author zhao-chj *题:计算1+2+3+4+5+6+7+8+9的 ...

  5. java 基础类型和包装类的详解

    摘自:JAVA中基本类型的包装类 1. 包装类把基本类型数据转换为对象     每个基本类型在java.lang包中都有一个相应的包装类 2. 包装类有何作用     提供了一系列实用的方法     ...

  6. java基础类:Object类和Math类

    1.2.3.4.5.6.7.7.

  7. 【搬砖】安卓入门(1)- Java开发入门

    01.01_计算机基础知识(计算机概述)(了解) A:什么是计算机?计算机在生活中的应用举例 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行,自动.高速处理海量数据的现代 ...

  8. 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)

    Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...

  9. JAVA基础学习——1.0 Java概述

    Java语言 SUN公司  1995年推出的高级编程语言 ■  主要应用方向 Web开发和Android开发 ■  主要特点 平台无关性:能运行于不同的平台上    安全性:去掉了指针操作,内存由操作 ...

随机推荐

  1. 一文让你秒懂互联网TCP/IP协议的深层含义

    什么是 TCP/IP 协议 首先,协议,可以理解为是一套统一的规则,就像行业标准.由于互联网主要的功能是传输信息,所以其协议一般是管理系统之间如何相互通信的规则. 用邮政和物流等线下的“运输协议”来理 ...

  2. 使用Idea从github上获取项目

    转载自:https://www.cnblogs.com/30go/p/7909246.html 整体分三步: 下载和安装git 配置idea 从git获取项目 详细步骤: 1. 下载和安装git 下载 ...

  3. VUE框架的初识

    VUE框架的初识 初步了解Vue.js框架(渐进式前端框架) Vue.js是一种轻量级的前端MVVM框架.同时吸收了React(组件化)和Angular(灵活指令页面操作)的优点.是一套构建用户界面的 ...

  4. JS 中offset 的小bug 与解决方案。

    一.发现bug准备工作,先定义一个div,然后给div加上样式    效果图如图所示: 二.编写正常的代码,同时给div加上一个id     会发现div图会向左缩进...直至消失. 三.添加代码bo ...

  5. 剑指offer——二叉树的镜像

    题目:操作给定的二叉树,将其变换为源二叉树的镜像. 思路:前序(根左右的顺序)遍历一棵树,在存储的时候将其左右树进行交换,最后按照处理后的树还原,即得到其镜像. /** public class Tr ...

  6. [Flutter] 因为不讲这个重点, 全网所有 flutter 实战视频沦为二流课程

    二流课程也有其存在的价值,看到不同组件的轮流使用也是不断熟悉的过程,不过太眼花缭乱了. 授人以渔,基础用法是其一,讲清套路是其二,不然坑萌新. 那么 flutter 的套路是什么呢,我认为有下面几点: ...

  7. linux 文件压缩与解压

    zip格式: zip -r(源文件是目录) [目标文件] [源文件] unzip -d [解压到的目录] [要解压的文件] gz格式: gzip [源文件]   #会删除源文件 gzip -c [源文 ...

  8. tornado 基于MongoDB存储 session组件开发

    1.开发伊始 根据源码中RequestHandler类中发现__init__函数中会调用自身initialize函数,此函数中为pass,即可以围绕initialize开发一系列的组件 2.开发实现 ...

  9. 在anaconda下安装已经下载好Opencv4的痛苦回忆

    来来回回装了很多回,今天终于一鼓作气把它安装好,记录一下过程. 准备: Opencv4的安装包,可以在官网上下载 anaconda——主要目的是在anaconda下的某个environment中安装最 ...

  10. 基于WebGL架构的3D可视化平台ThingJS-搭建设备管理系统

    国内高层建筑不断兴建,它的特点是高度高.层数多.体量大.面积可达几万平方米到几十万平方米.这些建筑都是一个个庞然大物,高高的耸立在地面上,这是它的外观,而随之带来的内部的建筑设备也是大量的.为了提高设 ...