第11次课,注意讲到了系统的相关类System、Runtime的常用方法和字符串相关类String的常用方法。
一、系统的相关类
1、System
(1)System类代表当前java程序运行的平台
(2)System类中获取系统属性的静态方法:
//获取所有的系统属性
Properties properties = System.getProperties();
//保存在指定的文件
properties.store(new FileOutputStream("props.txt"), "System Properties");
//获取指定
System.out.println(properties.getProperty("os.name"));
(3)System类中获取环境变量的静态方法:
//遍历查看系统里面所有的环境变量
Map<String, String> env = System.getenv();
for (String name : env.keySet()) {
System.out.println("name:" + name + "------>" + env.get(name));
}
//找到JAVA_HOME
System.out.println();
System.out.println("1、找到JAVA_HOME");
//大小写均可
// String javaPath = System.getenv("java_home");
String javaPath = System.getenv("jAva_home");
System.out.println(javaPath);
//找到系统临时目录
System.out.println();
System.out.println("2、找到系统临时目录");
String tempPath = System.getenv("temp");
System.out.println(tempPath);
System.out.println();
System.out.println("3、找到androidHome目录");
String androidHome = System.getenv("androidHome");
System.out.println(androidHome);
(4)System类中获取当前系统时间的静态方法:
currentTimeMillis():获取当前系统的毫秒数
nanoTime():获取当前系统的纳秒数
2、RunTime
(1)获取jvm的信息:参见前面
我第六次课的内容
(2)执行系统的程序:
try {
Runtime rt = Runtime.getRuntime();
rt.exec("notepad.exe");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
二、字符串相关类
1、String:不可变类,一旦创建,字符序列是不可改变的
常用方法:
(1)length():返回字符串长度
(2)charAt(int index):返回指定索引处的char值
(3)getBytes(String s):使用指定的字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
(4)equals(Object obj)两个字符串对象是否完全相等
(5)equalsIgnoreCase(Strng s):两个字符串对象进行比较,忽略大小写
(6)startsWith(String s)
(7)endWith(String s):判段字符串是否以s这个指定的后缀结尾
(8)indexOf(String s):s在字符串中第一次出现的位置(索引)
(9)LastIndexOf(String s):s在字符串中最后一次查询的位置(索引)
(10)substring(int si)和substring(int si,int ei):
substring(int si):从第si个位置(包括这个位置)开始截到字符串的末尾
substring(int si,int ei):从第si个位置(包括这个位置)开始截,一直截到第ei和位置(不包括)。长度:
(11)replace(char oldChar, char newChar):返回一个新的字符串,它是通过用
ei-si
(11)replace(char oldChar, char newChar):返回一个新的字符串,它是通过用
newChar
替换此字符串中出现的所有
oldChar
得到的
(12)trim():去掉字符串的起始和尾部的空格
(13)大小写转换:toUpperCase() 和toLowerCase()
(13)大小写转换:toUpperCase() 和toLowerCase()
三、作业:
1、设计一个程序,找到adb.exe所在目录
package homework;
import java.util.Map;
public class GetADBPath {
public static void main(String[] args) {
Map<String, String> env = System.getenv();
String adbPath = null;
for (String name : env.keySet()) {
if(name.equalsIgnoreCase("Android_sdk_home")){
adbPath = env.get(name);
}
}
System.out.println("adb所在的目录为:"+adbPath+"\\platform-tools\\adb.exe");
}
}
运行结果:
adb所在的目录为:D:\android-sdk\platform-tools\adb.exe
2、给定一个搜索android的百度搜索url,分析它的域名和查询参数
package homework;
/**
* 给定一个搜索android的百度搜索url,分析它的域名和查询参数
* @author Administrator
*
*/
public class SplitURL {
public static void main(String[] args) {
String queryString = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=monline_3_dg&wd=Android&oq=lambda%E8%A1%A8%E8%BE%BE%E5%BC%8F&rsv_pq=cc4e675000025a53&rsv_t=efd4V0N1XILDAqIaz3PFUnF%2FtmxXhuJaOMFtvyGQ0WbJM3HsE0Y2NkUh7f7t8FpiLtnd&rqlang=cn&rsv_enter=1&inputT=5397&rsv_sug3=5&rsv_sug1=3&rsv_sug7=100&rsv_sug2=0&rsv_sug4=5785";
SplitURL splitURL = new SplitURL();
splitURL.getQueryString(queryString);
}
public void getQueryString(String queryString){
int index = queryString.indexOf("?");
String domain = queryString.substring(0,index);
System.out.println("域名:"+domain);
String queryStr = queryString.substring(index+1);
System.out.println();
String [] queryStrArr = queryStr.split("&");
System.out.println("参数名=值:");
for (String string : queryStrArr) {
System.out.println(string);
}
}
}
运行结果:
域名:https://www.baidu.com/s
参数名=值:
ie=utf-8
f=8
rsv_bp=1
tn=monline_3_dg
wd=Android
oq=lambda%E8%A1%A8%E8%BE%BE%E5%BC%8F
rsv_pq=cc4e675000025a53
rsv_t=efd4V0N1XILDAqIaz3PFUnF%2FtmxXhuJaOMFtvyGQ0WbJM3HsE0Y2NkUh7f7t8FpiLtnd
rqlang=cn
rsv_enter=1
inputT=5397
rsv_sug3=5
rsv_sug1=3
rsv_sug7=100
rsv_sug2=0
rsv_sug4=5785