Java方法实例
### Java方法实例详解 #### 获取环境变量与系统属性 在Java中,我们可以通过`System`类来获取环境变量以及系统的一些基本属性。 1. **获取环境变量:** ```java String path = System.getenv("PATH"); // 获取PATH环境变量 String javaHome = System.getenv("JAVA_HOME"); // 获取JAVA_HOME环境变量 ``` - `System.getenv()`方法用于获取当前运行环境的环境变量。例如,`"PATH"`通常包含一系列目录路径,这些路径中存放着可执行文件;`"JAVA_HOME"`则指向安装JDK的目录。 2. **获取系统属性:** ```java String pencilColor = System.getProperty("pencilcolor"); // 默认值为空 System.setProperty("pencilcolor", "green"); // 设置属性 String specVersion = System.getProperty("java.specification.version"); // 获取Java规范版本 Properties props = System.getProperties(); // 获取所有系统属性 props.list(System.out); // 输出所有系统属性 ``` - `System.getProperty()`用于获取系统属性。可以通过命令行参数设置系统属性,例如`-Dpencilcolor=green`。 - `System.getProperty("java.specification.version")`用于获取当前Java环境的规格版本。 - `System.getProperties()`返回一个包含当前系统属性的`Properties`对象,包括了文件分隔符、路径分隔符等系统相关的配置。 #### 使用`StringTokenizer`类 `StringTokenizer`是Java中处理字符串分割的一个实用工具,可以指定分隔符对字符串进行分割。 1. **普通分割:** ```java StringTokenizer st = new StringTokenizer("Hello,World|of|Java", ",|"); while (st.hasMoreElements()) { System.out.println(st.nextToken()); } ``` - `new StringTokenizer(String s, String delims)`构造函数接受两个参数,第一个参数是要被分割的字符串,第二个参数是分隔符。 2. **保留分隔符:** ```java StringTokenizer st = new StringTokenizer("Hello,World|of|Java", ",|", true); while (st.hasMoreElements()) { System.out.println(st.nextToken()); } ``` - 当第三个参数为`true`时,分隔符也会作为元素被返回。 #### 使用`StringBuffer`与`StringBuilder`类 `StringBuffer`和`StringBuilder`都提供了动态构建字符串的能力。 1. **使用`StringBuilder`:** ```java StringBuilder sb = new StringBuilder(); sb.append("Hello").append("World"); String result = sb.toString(); ``` - `StringBuilder`是线程不安全的,因此在单线程环境下性能更高。 2. **使用`StringBuffer`:** ```java StringBuffer buffer = new StringBuffer("Hello"); buffer.reverse(); String reversed = buffer.toString(); ``` - `StringBuffer`是线程安全的,适合多线程环境。 #### 使用`Integer`类与数学运算 1. **`Integer`类的使用:** ```java Integer intValue = 10; int primitiveInt = intValue.intValue(); ``` - `Integer`类提供了将基本类型`int`封装成对象的方法。 2. **数学运算:** ```java double roundedValue = Math.round(10.5); ``` - `Math.round()`方法用于四舍五入。 #### 数字格式化 Java提供了多种数字格式化的方式: 1. **十进制转二进制、八进制、十六进制:** ```java String binary = Integer.toBinaryString(10); String octal = Integer.toOctalString(10); String hex = Integer.toHexString(10); ``` 2. **自定义数字格式:** ```java NumberFormat nf = NumberFormat.getInstance(); String formattedNumber = nf.format(1234567.89); ``` - `NumberFormat`类用于格式化数字,包括货币、百分比等。 3. **罗马数字格式:** ```java RomanNumberFormat rnf = new RomanNumberFormat(); String roman = rnf.format(10); ``` - 使用自定义的`RomanNumberFormat`类可以实现罗马数字的格式化。 #### 随机数生成 在Java中生成随机数非常简单: ```java Random random = new Random(); double randomDouble = random.nextDouble(); // 生成[0.0, 1.0)之间的随机双精度浮点数 int randomInt = random.nextInt(); // 生成整数范围内的随机整数 ``` - `Random`类提供了一系列生成随机数的方法。 #### 日期与时间操作 1. **获取当前时间:** ```java Date currentDate = new Date(); Calendar now = Calendar.getInstance(); Date today = now.getTime(); ``` 2. **日期格式化:** ```java DateFormat df = DateFormat.getInstance(); String formattedDate = df.format(currentDate); ``` - `DateFormat`类提供了日期的格式化和解析功能。 3. **定制日期格式:** ```java DateFormat dfCustom = DateFormat.getDateInstance(DateFormat.FULL, Locale.CHINA); String chineseFormattedDate = dfCustom.format(currentDate); ``` 4. **特定日期的创建:** ```java GregorianCalendar specificDate = new GregorianCalendar(2009, 5, 6); // 2009年6月6日 ``` 5. **日期的加减:** ```java Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.YEAR, -2); // 减去两年 ``` 6. **日期字符串转换:** ```java SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Date parsedDate = sdf.parse("2023-08-01 12:00:00"); ``` 7. **时间戳操作:** ```java long timestamp = currentDate.getTime(); // 获取当前时间的时间戳 timestamp += 7 * 24 * 60 * 60 * 1000; // 增加一周的时间戳 Date futureDate = new Date(timestamp); // 将时间戳转换回Date对象 ``` 通过以上实例,我们可以看到Java提供了丰富的API来处理各种常见的编程任务,从简单的环境变量获取到复杂的日期操作,Java都能很好地支持。