八、java常用类
目录
一、字符串相关类
1.String类
java.lang.String代表不可变的字符序列
“xxxx”为该类的一个对象
String类常见的构造方法:
String(String original)//创建一个String对象为original的拷贝
String(char90 value)//用一个字符数组创建一个String对象
String(char[] value,int offset,int count)//用一个字符数组从offset项开始的count个字符序列创建一个String对象
看一个例子:
//测试类
public class Test {
public static void main(String[] args){
String s1 = "hello";
String s2 = "world";
String s3 = "hello";
System.out.println(s1 == s3);
s1 = new String("hello");
s3 = new String("hello");
System.out.println(s1.equals(s3));
System.out.println(s1 == s2);
char c[] = {'s','u','n',' ','j','a','v','a'};
String s4 = new String(c);
String s5 = new String(c,4,4);
System.out.println(s4);
System.out.println(s5);
}
}
//输出结果
//true
//true
//false
//sun java
//java
String类常用方法
public char charAt(int index)
//返回字符串中第index个字符
public int lenth()
//返回字符串长度
public int indexOf(String str)
//返回字符串中出现str的第一个位置
public int indexOf(String str, int fromIndex)
//返回字符串中从fromIndex开始出现str的第一个位置
public boolean equalsIgoreCase(String another)
//比较字符串与another是否一样(忽略大小写)
public String replace(char oldChar,char newChar)
//在字符串中用newChar字符串替换oldChar字符串
public boolean startWith(String prefix)
//判断字符串是否以prefix字符串开头
public boolean endsWidth(String suffix)
//判断字符串是否一suffix字符串结尾
public String toUpperCase()
//返回一个字符串为该字符串的大写形式
public String toLowerCase()
//返回一个字符串为该字符串的小写形式
public String sunstring(int beginIndex,int endIndex)
//返回字符串从beginIndex开始到endIndex结尾的子字符串
public String trim()
//返回该字符串去掉开头和结尾空格后的字符串
看例子理解:
//测试类
public class Test {
public static void main(String[] args){
String s1 = "sun java";
String s2 = "Sun java";
System.out.println(s1.charAt(1));//u
System.out.println(s2.length());//
System.out.println(s1.indexOf("java"));//
System.out.println(s1.indexOf("Java"));//-1
System.out.println(s1.equals(s2));//false
System.out.println(s1.equalsIgnoreCase(s2));//true String s = "我是程序员,我在学习java";
String sr = s.replace('我', '你');
System.out.print(sr);//你是程序员,你在学习java
}
}
//测试类
public class Test {
public static void main(String[] args){
String s = "Welcome to Java World!";
String s1 = " sun java ";
System.out.println(s.startsWith("Welcome"));//true
System.out.println(s.endsWith("World"));//false
System.out.println(s.toLowerCase());//welcome to java world!
System.out.println(s.toUpperCase());//WELCOME TO JAVA WORLD!
System.out.println(s.substring(11));//Java World!
System.out.println(s1.trim());//sun java
}
}
- 静态重载方法
public static String valueOf(…)可以将基本数据类型转换为字符串;
例如:
public static String valueOf(double d)
Public static String value of(int i)
- 方法public Strint[] split(String regex)可以将一个字符串按照指定的分隔符分割,返回分隔后的字符串数组
//测试类
public class Test {
public static void main(String[] args){ int i = 123456;
String sNumber = String.valueOf(i);
System.out.println(“i是”+sNumber.length()+”位数”);
String s = "Nice to meet you";
String[] sPlit = s.split(" ");
for(int k=0;k<sPlit.length;k++){
System.out.println(sPlit[k]);
}
}
} //输出结果: //i是7位数//Nice
//to
//meet
//you
2.StringBuffer类
java.lang.StringBuffer代表可变的字符序列
StrinBuffer和String类似,但StringBuffer可以对其字符串进行改变。
这里说的可变指的是主要是内存空间,打比方你定义了一个String s1=”a”,s2=”b”如果要执行s1=s1+s2的话,在内存空间中会另外开辟出第三块内存,然后把s1和s2分别附加到第三块内存,再让s1指向第三块内存,完成附加流程。同样的,对于如果你想截取String里的部分字符也要开辟第三块内存空间
StringBuffer类的常见构造方法:
StringBuffer()//创建一个不包含字符序列的“空”的StringBuffer对象
StringBuffer(String str)//创建一个StringBuffer对象,包含与String对象str相同的字符串序列
重载方法
- public StringBuffer append(…)可以为该StringBuffer对象添加字符串序列,返回添加后的该StrintBuffer对象引用,例如:
public StringBuffer append(String str)
public StringBuffer append(StringBuffer sbuf)
public StringBuffer append(char[] str)
public StringBuffer append(char[] str,int offset,int len)
public StringBuffer append(double d)
public StringBuffer append(object obj)
…
- public StringBuffer insert(…)可以为该StringBuffer对象在指定位置插入字符串序列,返回修改后的该StringBuffer对象引用,例如:
public StringBuffer insert(int offset,String str)
public StringBuffer insert(int offset,double d)
…
- public StringBuffer delete(int start,int end)可以删除从start开始到end-1为止的一段字符串序列,返回修改后的该StringBuffer对象引用
- 和String类含义类似的方法:
public int indexOf(String str)
public int indexOf(String str,int fromIndex)
public String substring(int start)
public String substring(int start,int end)
public int length()
- public StringBuffer reverse()用于将字符序列逆序,返回修改后的该S他ringBuffer对象引用
看一个例子:
public class Test {
public static void main(String[] args){ String s = "Mircosoft";
char[] a = {'a','b','c'};
StringBuffer sb1 = new StringBuffer(s);
sb1.append('/').append("IBM").append('/').append("Sun"); System.out.println(sb1);
StringBuffer sb2 = new StringBuffer("数字: ");
for(int i=0;i<=9;i++) {
sb2.append(i);
} System.out.println(sb2); sb2.delete(8, sb2.length()).insert(0, a);
System.out.println(sb2); System.out.println(sb2.reverse());
}
}
//输出结果:
//Mircosoft/IBM/Sun
//数字: 0123456789
//abc数字: 0123
//3210 :字数cba
3.练习
//输出指定字符串中大写小写和特殊字符的出现次数
public class Test {
public static void main(String[] args){ String s = "AaaaAbbbbcc+-*adfsfdCCOOkk99876 *haHA";
int big = 0,small = 0, specil = 0;
for(int i = 0;i<s.length();i++) {
char c = s.charAt(i);
if(Character.isLowerCase(c)) {
small++;
}else if (Character.isUpperCase(c)) {
big++;
}else {
specil++;
}
}
System.out.println("小写"+small+"个");
System.out.println("大写"+big+"个");
System.out.println("特殊字符"+specil+"个");
}
}
//输出指定字符串在另一个字符串中出现的次数
public class Test {
public static void main(String[] args){ String s = "sun java sun java sun java sun java ";
String find="java"; int count = 0;
while(s.indexOf(find) != -1) {
s = s.substring(s.indexOf(find) + find.length());
count++;
}
System.out.print(count);
}
}
二、基本数据类型包装类
包装类(如:Iteger,Double等)这些类封装了一个相应的基本数据类型数值,并为其提供了一系列操作。
以java.lang.Integer为例;构造方法:
- Integer(int value)
- Integer(String s)
包装类常见方法:
public static final int MAX_VALUE //最大的int型数(2的31次方-1)
public static final int MIN_VALUE //最小的int型数(-231)
public long longValu() //返回封装数据的long型值
public double doubleValue() //返回封装数据的double型值
public int intVlaue() //返回封装数据的int型值
public static int parseInt(String s) throwsNumberFormatException//将字符串解析成int型数据,并返回值
public static Integer valueOf(String s) shrows NumberFormatException //返回Integer对象,其中封装的整型数据为字符串s所表示
看一个例子:
public class Test {
public static void main(String[] args){ Integer i = new Integer(100);
Double d = new Double("123.456");
int j = i.intValue()+d.intValue();
float f = i.floatValue()+d.floatValue();
System.out.println(j);
System.out.println(f); double pi = Double.parseDouble("3.1415926");
double r = Double.valueOf("2.0").doubleValue();
double s = pi * r * r;
System.out.println(s); try {
int k = Integer.parseInt("1.25");
} catch(NumberFormatException e ) {
System.out.println("数据格式不对");
}
System.out.println(Integer.toBinaryString(123)+"B");
System.out.println(Integer.toHexString(123)+"H");
System.out.println(Integer.toOctalString(123)+"O");
}
}
public class Test {
public static void main(String[] args){
double[][] d;
String s = "1,2;3,4,5;6,7,8";
String[] sFirst = s.split(";");
d = new double[sFirst.length][];
for(int i=0;i<sFirst.length;i++) {
String[] sSecond = sFirst[i].split(",");
d[i] = new double[sSecond.length];
for(int j=0;j<sSecond.length;j++) {
d[i][j] = Double.parseDouble(sSecond[j]);
//System.out.println(sSecond[j]);
}
}
for (int i=0;i<d.length;i++) {
for (int j=0;j<d[i].length;j++) {
System.out.print(d[i][j]+" ");
}
System.out.println();
}
}
}
三、Math类
java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型
常见方法:
abs //绝对值
acos,sin,stan,cos,sin,tan
sqrt //平方根
pow(double a,double b) //a的b次冥
log //自然对数
exp e //底指数
max(double a,double b)
min(double a,doublle b)
random() //返回0.0到1.0的随机数
long round(double a) //double型的数据a转换为long型(四舍五入)
toDegrees(double angrad) //弧度->角度
toRadians(double angdeg) //角度->弧度
看个例子:
public class Test {
public static void main(String[] args){ double a = Math.random();
double b = Math.random();
System.out.println(Math.sqrt(a*a+b*b));
System.out.println(Math.pow(a, 8));
System.out.println(Math.round(b));
System.out.println(Math.log(Math.pow(Math.E,15 )));
double d = 60.0 , r = Math.PI/4;
System.out.println(Math.toRadians(d));
System.out.println(Math.toDegrees(r)); }
}
四、File类
java.io.File类代表系统文件名(路径和文件名)
常见构造方法:
public File(String pathname)//以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储
public File(String parent,String child)//以parent为父路径,child为子路径创建File对象
File的静态属性String separator存储了当前系统的路径分隔符(windows下是反斜杠,linux下是正斜杠,为了跨平台使用,事实上,在windows上使用正斜杠也是可以的)
常见方法:
//通过file对象可以访问文件的属性
public boolean canRead()
public boolean canWrite()
public boolean exists()//查看文件是否存在public boolean isDirectory()
public boolean isFile()
public boolean isHidden()//是否隐藏的
public long lastModified()//上次修改时间(从创建到目前为止过了多少毫秒)
public long length()
public String getName()
public String getPath()
//通过file对象创建空文件或目录(在该对象所知的文件或目录不存在的情况下)
public boolean createNewFile() throws IOException
public boolean delete()
public boolean mkdir()
public boolean mkdirs() //创建在路径中的一些列路径
看一个例子:
public class Test {
public static void main(String[] args){ String separator = File.separator;
String filename = "test.txt";
String directory = "testdir1"+separator+"testdir2";
//String directory = "testdir1/mydir2"
File f = new File(directory,filename);
if (f.exists()) {
System.out.println("文件名: "+f.getAbsolutePath());
System.out.println("文件大小: "+f.length());
} else {
f.getParentFile().mkdirs(); try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
这个例子里有一个小的注意事项,当找一个类的上层路径,如果这个类是属于某个package下的,那么上层路径应该是这个package的上层路径
//递归列出目录结构
public class Test {
public static void main(String[] args){
File f = new File("F:/java_workspace");
System.out.println(f.getName());
tree(f,1);
}
//创建方法
private static void tree(File f,int level) {
//创建缩进规则
String preStr = "";
for(int i=0;i<level;i++) {
preStr += " ";
}
//递归查找
File[] childs = f.listFiles();
for(int i = 0;i<childs.length;i++) {
System.out.println(preStr+childs[i].getName());
if(childs[i].isDirectory()) {
tree(childs[i],level+1);
}
}
}
}
五、枚举类
java.lang.Enum枚举类型
- 只能够取特定值中的一个
- 使用enum关键字
- 是java.lang.Enum类型
枚举的意思其实就是事先定义一个范围,让程序在编译的时候就来检查你的变量、对象什么的是不是在这个范围内,而不是在执行的时候才发现
看个例子:
public class Test { public enum color {red, green, blue}; public static void main(String[] args){
color m = color.red;
switch (m) {
case red:
System.out.println("red");
break;
case green:
System.out.println("green");
break;
default:
System.out.println("default: blue");
break;
}
}
}
八、java常用类的更多相关文章
- Java基础 —— Java常用类
Java常用类: java.lang包: java.lang.Object类: hashcode()方法:返回一段整型的哈希码,代表地址. toString()方法:返回父类名+"@&quo ...
- Java常用类之要点总结
Java常用类之要点总结
- Java常用类:包装类,String,日期类,Math,File,枚举类
Java常用类:包装类,String,日期类,Math,File,枚举类
- Java常用类学习笔记总结
Java常用类 java.lang.String类的使用 1.概述 String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String ...
- Java 常用类总结(SE基础)
本篇博客对java常用类相关知识进行了归纳总结,比较详细,适用于学习和复习. 1. 字符串相关的类 1.1 String String是一个final类,代表不可变的字符序列.不可被继承. Strin ...
- Java常用类的使用
Java常用类 1. Optional 在我们的开发中,NullPointerException可谓是随时随处可见,为了避免空指针异常,我们常常需要进行 一 些防御式的检查,所以在代码中常常可见if( ...
- Java常用类(二) Scanner类和大数类
二.Scanner类 有C系语言基础的可能都比较熟悉scanf("%d",&a);和cin>>a;这种代码,也打开了程序交互的第一道门.因此,这些程序员开始学J ...
- Java常用类,这一次帮你总结好!
常用类 常用类概述: 内部类 Object类 包装类 数学类 时间类 字符串 String Builder和StringBuffer DecimalFormat 一.内部类 概念:在一个类内部再定义一 ...
- Java常用类之String类、Stringbuffer和Random类练习
定义一个StringBuffer类对象, 1)使用append方法向对象中添加26个字母,并倒序遍历输入 2)删除前五个字符 package 第十一章常用类; /** * 定义一个StringBuff ...
随机推荐
- C++ 函数 引用
一.引用的概念 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样.引用的声明方法: 类型标识符 &引用名 = 目标变量名: 为一个变量起一个别名.假如有一个变量a,想给 ...
- BugPhobia展示篇章:学霸在线系统Alpha阶段展示
0x00:序言 1 universe, 9 planets, 204 countries,809 islands, 7 seas, and i had the privilege to meet yo ...
- Mysql常用配置及优化
[client]# 该目录下的内容常用来进行localhost登陆,一般不需要修改port = 3306 # 端口号socket = /var/lib/mysql/mysql.sock # 套接字文件 ...
- iOS开发学习-如何优化tableview的使用
1.复用单元格 2.单元格中的视图尽量都使用不透明的,单元格中尽量少使用动画 3.图片加载使用异步加载 4.滑动时不加载图片,停止滑动时开始加载 5.单元格中的内容可以在自定义cell类中的drawR ...
- Oracle 的四种连接-左外连接、右外连接、内连接、全连接
今天在看一个遗留系统的数据表的时候发现平时查找的视图是FULL OUT JOIN的,导致平时的数据记录要进行一些限制性处理,其实也可以设置视图各表为右外连接并在视图上设置各列的排序和筛选条件就可以 ...
- 信息安全C散列函数的应用及其安全性2016011992
1:散列函数的具体应用 使用一个散列函数可以很直观的检测出数据在传输时发生的错误. MD5 Hash算法的"数字指纹"特性,使它成为目前应用最广泛的一种文件完整性校验(Checks ...
- 使用Fabric自动化你的任务
Fabric是一个Python库,可以通过SSH在多个host上批量执行任务.你可以编写任务脚本,然后通过Fabric在本地就可以使用SSH在大量远程服务器上自动运行.这些功能非常适合应用的自动化部署 ...
- 深入理解JAVA I/O系列五:对象序列化
序列化 对象序列化的目标是将对象保存到磁盘中,或者允许在网络中直接传输对象.对象序列化机制允许把内存中的JAVA对象转换成跟平台无关的二进制流,从而允许将这种二进制流持久地保存在磁盘上,通过网络将这种 ...
- HDU 2134 Cuts the cake
http://acm.hdu.edu.cn/showproblem.php?pid=2134 Problem Description Ice cream took a bronze medal in ...
- SCRIPT7002: XMLHttpRequest: 网络错误 0x2efe, 由于出现错误 00002efe 而导致此项操作无法完成
google中带中文参数可能查询,但是在IE带中文参数不能查询:报如下错误 SCRIPT7002: XMLHttpRequest: 网络错误 0x2efe, 由于出现错误 00002efe 而导致此项 ...