java 中 获取字符串的子串
时间: 2024-12-28 17:36:23 浏览: 11
在Java中,获取字符串的子串可以通过`substring()`方法实现[^1]。这个方法有两个形式:
1. `substring(int beginIndex)`:从指定位置开始到字符串结尾的部分。
```java
String str = "Hello, World!";
String subStr = str.substring(7); // 从索引7(包括)开始,得到"World!"
```
2. `substring(int beginIndex, int endIndex)`:从开始索引到结束索引(不包括)之间的部分。
```java
String subStr = str.substring(7, 12); // 从索引7到11(不包括),得到"Worl"
```
需要注意的是,索引是从0开始计数的。
至于获取两个字符串中最大相同子串[^2],可以使用动态规划来解决。一种常见方法是使用二维数组记录最长公共子串长度,从短字符串的每个位置开始与长字符串比较,更新结果。
```java
public String longestCommonSubstring(String s1, String s2) {
int[][] dp = new int[s1.length() + 1][s2.length() + 1];
int maxLength = 0;
int end = -1;
for (int i = 1; i <= s1.length(); i++) {
for (int j = 1; j <= s2.length(); j++) {
if (s1.charAt(i - 1) == s2.charAt(j - 1)) {
dp[i][j] = dp[i - 1][j - 1] + 1;
if (dp[i][j] > maxLength) {
maxLength = dp[i][j];
end = i - 1;
}
} else {
dp[i][j] = 0;
}
}
}
return s1.substring(end - maxLength + 1, end + 1);
}
```
这个算法的时间复杂度是O(mn),其中m和n分别是两个字符串的长度。
阅读全文