String类

  1. String 类是不可变的字符序列,String 字符串一旦分配好就不能改变其内容和长度了。(如果使用 s1+=s2; 并不是在s1的后面开辟空间将s2拷贝其内,而是另外开辟一个空间,将s1和s2拷贝其内。)
  2. String类是 final 的,不可以被继承。
  3. 任意一个字符串都是 String 类的对象。
  • String 类的常见构造方法
String(String original) // 创建一个String对象为original的拷贝
String(char[] 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); // true
// 因为 s1 和 s3 不是 new 出来的,s1 和 s3 指向同一片静态区域。 s1 = new String("hello");
s2 = new String("hello");
System.out.println(s1 == s2); // false
System.out.println(s1.equals(s2)); // true
// s1.equals(s2) 是 true 的,我们知道,如果是 Object 类的话,只有 s1 == s2 的情况下才会使得
// s1.equals(s2) 是 true,那么我们就要看 String 类有没有重写 equals 方法,查 API 确实重写了。 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); }
}
  • String 类常用方法一
public char charAt(int index) // 返回字符串中第 index 个字符
public int length() // 返回字符串的长度
public int indexOf(String str) // 返回字符串中出现 str 的第一个位置
public int indexOf(String str, int fromIndex) // 返回字符串中从fromeIndex 开始出现str的第一个位置
public boolean equalsIgnoreCase(String another) // 比较字符串 another 是否一样(忽略大小写)
public String replace(char oldChar, char newChar) // 在字符串中用 newChar 字符替换 oldChar 字符

举例:

public class Test {
public static void main(String[] args) {
String s1 = "java", s2 = "Java";
System.out.println(s1.charAt(1)); // u
System.out.println(s1.length()); // 8
System.out.println(s1.indexOf("java")); // 0
System.out.println(s1.indexOf("Java")); // -1
System.out.println(s1.equals(s2)); // false
System.out.println(s1.equalsIgnoreCase(s2)); // true String s = " C programmer";
String sr = s.replace('C', 'java');
System.out.println(sr); // java programmer
}
}
  • String 类常用方法二
public boolean startsWith(String prefix) // 判断字符串是否以 prefix 字符串开头
public boolean endsWith(String prefix) // 判断字符串是否以 prefix 字符串结尾
public String toUpperCase() //返回一个字符串为该字符串的大写形式
public String toLowerCase() //返回一个字符串为该字符串的小写形式
public String substring(int beginIndex) // 返回该字符串从 beginIndex 开始到结尾的字符串
public String substring(int beginIndex, int endIndex) // 返回该字符串从 beginIndex 开始到 endIndex 结尾的字符串
public String trim() // 返回将该字符串去掉开头和结尾空格后的字符串
  • String 类常用方法三

  • 静态重载方法

    public static String valueOf(...) //可以将基本类型的数据转换成字符串;
    //例如:
    public static String valueOf(double d)
    public static String valueOf(int i)

  • public String[] split(String regex) 可以将一个字符串按照指定的分隔符分割,返回分割后的字符串数组。


StringBuffer 类

  1. StringBuffer 类是可变的字符序列(和 String 类做比对)。

    如果使用 s1+=s2; 是在s1的后面开辟空间将s2拷贝其内,(与String做对比)。
  • StringBuffer 常用方法一:

    重载方法:

public StringBuffer append(...) 可以为该 StringBuffer 对象添加字符序列,返回添加后的该 StringBuffer 对象引用,例如:

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)
  • StringBuffer 常用方法二:

    重载方法 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 对象引用。

方法 public StringBuffer reverse() 用于将字符序列逆序,返回修改后该 StringBuffer 对象引用。

基本数据类型包装类

  • 基本的数据类型都是分配在栈上的,如果你想让他们分配在堆上面,需要使用到基础数据类型包装类,将其封装为一个对象。

  • 查看 API 文档即可。

// 编写一个方法,返回 double 类型的二维数组,数组中的元素通过解析字符串参数获得,如字符串参数:"1,2;3,4,5;6,7,8"
// 对应的数组为:d[0][0] = 1.0; d[0][1] = 2.0;
// d[1][0] = 3.0; d[1][1] = 4.0; d[1][2] = 5.0;
// d[20][0] = 6.0; d[2][1] = 7.0; d[2][2] = 8.0; public class Test {
public static void main(String[] args) {
String s = "1,2;3,4,5;6,7,8"; String[] sp = s.split(";");
String[] spp = null; double arr[][] = new double[sp.length][]; for(int i=0; i<sp.length; i++) {
spp = sp[i].split(",");
arr[i] = new double[spp.length]; for(int j=0; j<spp.length; j++) {
arr[i][j] = double.parseDouble(spp[j]);
}
} for(int i=0; i<arr.length; i++) {
for(int j=0; j<arr[i].length; j++) {
System.out.println(arr[i][j]);
}
}
}
}

Math 类


File 类

  • java.io.File 类表示系统文件名(一个加路径的文件名)

  • File 类是对这个文件名进行的操作,比如删除一个文件,得到一个文件的路径等,而不能对这个文件里面的内容进行操作,对文件内容操作要使用到io流。

  • File 类的构造方法:

File(String pathname)  // 以 pathname 为路径穿件 File 对象
File(String parent, String child) // 以 parent 为父路径,child 为子路径创建 File 对象。
  • File 的静态属性 String separator 存储了当前系统的分隔符。

  • File 类的常用方法

  1. 通过 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()
  1. 通过 File 对象创建空文件或目录(在该对象所指的文件或目录不存在的情况下)
public boolean createNewFile() throws IOException // createNewFile 不是 creatNewFile
public boolean delete()
public boolean mkdir()
public boolean mkdirs() // 创建路径中的一系列目录

举例:

import java.io.*;
public class TestFile {
public static void main(String[] args) {
String separator = File.separator;
String filename = "myfile.txt";
String directory = "mydir1" + separator + "mydir2";
//String directory = "mydir1/mydir2";
//String directory = "mydir1\\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();
}
}
}
}

Tips: 分隔符写'/'在Windows 和 Linux 下都可以使用,而'\'只能在 Windows 下使用。

06 - JavaSE之常用类的更多相关文章

  1. JavaSE学习笔记(8)---常用类

    JavaSE学习笔记(8)---常用类 1.Object类 java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类 ...

  2. Foundation框架下的常用类:NSNumber、NSDate、NSCalendar、NSDateFormatter、NSNull、NSKeyedArchiver

    ========================== Foundation框架下的常用类 ========================== 一.[NSNumber] [注]像int.float.c ...

  3. JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

  4. Java基础知识二次学习--第六章 常用类

    第六章 常用类   时间:2017年4月26日16:14:49~2017年4月26日16:56:02 章节:06章_01节~06章_06节 视频长度:20:57+1:15+8:44+1:26+11:2 ...

  5. Java基础——6种常用类讲解

    本文主要介绍几种Java中常用类的应用. 一.System类 从API当中我们可以看出,public final class System exends Object.System类包含一些有用的字段 ...

  6. VS2010/MFC编程入门之四十三(MFC常用类:CTime类和CTimeSpan类)

    上一节中鸡啄米讲了MFC常用类CString类的用法,本节继续讲另外两个MFC常用类-日期和时间类CTime类和CTimeSpan类. 日期和时间类简介 CTime类的对象表示的时间是基于格林威治标准 ...

  7. JAVA基础——Java 中必须了解的常用类

    Java中必须了解的常用类 一.包装类 相信各位小伙伴们对基本数据类型都非常熟悉,例如 int.float.double.boolean.char 等.基本数据类型是不具备对象的特性的,比如基本类型不 ...

  8. Java匹马行天下之JavaSE核心技术——工具类

    Java匹马行天之JavaSE核心技术——工具类 一.Object类 java.lang.ObjectObject类是所有类直接或间接的父类 常用的方法: toString():以字符串形式返回对象的 ...

  9. VS2010-MFC(MFC常用类:CTime类和CTimeSpan类)

    转自:http://www.jizhuomi.com/software/230.html 上一节讲了MFC常用类CString类的用法,本节继续讲另外两个MFC常用类-日期和时间类CTime类和CTi ...

随机推荐

  1. 20145232 《Java程序设计》课程总结

    学期总结 实验报告链接汇总 实验一 Java开发环境的熟悉 实验二 Java面向对象程序设计 实验三 敏捷开发与XP实践 实验四 Andoid开发基础 实验五 Java网络编程 代码托管链接 :Jav ...

  2. 第十四个目标 (fzu)

    http://acm.fzu.edu.cn/contest/problem.php?cid=151&sortid=8 Problem Description 目暮警官.妃英里.阿笠博士等人接连 ...

  3. 第86讲:Scala中For表达式的生成器、定义和过滤器

    今天我们来看一下For表达式中的生成器,定义和过滤等内容. 让我们来看下代码 def main(args:Array[String]){     val lauren = Persons(" ...

  4. hdu 4901 划分序列使异或和==且和

    http://acm.hdu.edu.cn/showproblem.php?pid=4901 给定一个序列,要求选出两个集合,S和T,要求S中选中的元素的下标都要小于T中元素的下标.并且说S中元素的异 ...

  5. HDU 2829 区间DP & 前缀和优化 & 四边形不等式优化

    HDU 2829 区间DP & 前缀和优化 & 四边形不等式优化 n个节点n-1条线性边,炸掉M条边也就是分为m+1个区间 问你各个区间的总策略值最少的炸法 就题目本身而言,中规中矩的 ...

  6. jQuery插件初级练习5答案

    html: $.kafei.fontsize($("p"),"30px").html("123") jQuery: $.kafei={ fo ...

  7. EBS 取消“是否提交另一项请求”提示

    在使用EBS提交请求后,总要弹出“是否提交另一项请求”的提示,而我们往往选择“否”,这个提示就显得多余. 为了减轻这“多一步”的负担,取消“是否提交另一项请求”的提示,设置方法如下: 以下profil ...

  8. 转 iOS宏定义的使用与规范

    宏定义在很多方面都会使用,例如定义高度.判断iOS系统.工具类,还有诸如文件路径.服务端api接口文档.为了对宏能够快速定位和了解其功能,我们最好在定义的时候将其放入特定的头文件中,下面我抛砖引玉,对 ...

  9. Kali Linux渗透测试实战 2.2 操作系统指纹识别

    目录 2.2 操作系统指纹识别 2.2.1 Banner抓取 2.2.2 TCP 和 ICMP 常规指纹识别技术 TCP数据报格式 ICMP首部格式 TTL与TCP窗口大小 FIN探测 BOGUS f ...

  10. JS学习笔记4_BOM

    1.frame相关对象 top:指向最外层框架,使用top可以在一个框架中访问另一个框架,例如top.frames[index/name] parent:指向当前框架的直接上层框架 window:代码 ...