在Java中,`substr`和`substring`是用于从字符串中获取子字符串的两个方法。它们的主要区别在于参数的含义和行为。
1. `substr`方法:
- 方法声明:`public String substr(int startIndex, int length)`
- 参数含义:`startIndex`表示子字符串的起始索引位置,`length`表示子字符串的长度。
- 行为:从起始索引位置开始,返回指定长度的子字符串。
- 示例:
```java
String str = "Hello, World!";
String substr = str.substr(7, 5);
System.out.println(substr); // 输出 "World"
```
2. `substring`方法:
- 方法声明:`public String substring(int startIndex)`
`public String substring(int startIndex, int endIndex)`
- 参数含义:`startIndex`表示子字符串的起始索引位置,`endIndex`表示子字符串的结束索引位置(不包括在内)。
- 行为:从起始索引位置开始,返回到结束索引位置之前的子字符串。
- 示例:
```java
String str = "Hello, World!";
String substring1 = str.substring(7);
System.out.println(substring1); // 输出 "World!"
String substring2 = str.substring(7, 12);
System.out.println(substring2); // 输出 "World"
```
需要注意的是,`substr`方法在较新的Java版本中已被标记为过时(deprecated),不建议使用。推荐使用`substring`方法来获取子字符串。