java - 从字符串中挑选出正确的字符;
问题描述
我试图找出字符串中与另一个字符串匹配的部分之前和之后的字符,从而创建一个完全不同的字符串。即当方法wordEnds(String str, String word)
被调用时,str = "XY1XY"
and word = "XY"
,那么新的字符串就是"11"
.
这是我到目前为止所拥有的:
package codingBat;
public class CodingBat {
public static String wordEnds(String str, String
word) {
String newStr = null;
if(str.equals(word)) {
return "";
}
else if(!str.contains(word)) {
return "";
}
else {
for(int i = 0;i < str.length();i++) {
if((word.equals(str.substring(i,i+1)))){
newStr = newStr + (str.substring(i-1,i+2));
}
else {
return newStr;
}
}
return newStr;
}
}
}
解决方案
尝试使用正则表达式,您的示例模式看起来像这样XY.*XY
。但是您必须将 更改XY
为字符串参数,这样它就可以了pattern = str+"(.*)"+str
。然后你可以使用组并从中间读取字符串这是一个代码:
static String middleString(String str, String word) {
Pattern pattern = Pattern.compile(str + "(.*)" + str);
Matcher matcher = pattern.matcher(word);
matcher.matches();
return matcher.group(1);
}
这个电话:
System.out.println(middleString("XY", "XY11XY"));
退货11
推荐阅读
- dart - Flutter 将状态栏亮度更改为暗
- android - 设计视图上的 UI 在模拟器中的显示方式不同
- python-2.7 - Sorted 是按错误的方向排序数字吗?
- shell - Unix shell 脚本 - 如何在我的 shellscript 中使用 href 的输出
- c# - 我如何将 dateTimePickerValue 类型转换为 dateTime 类型
- flutter - 渐进式绘制到画布
- java - 在java中使用jackson反序列化日期字段时引发自定义异常
- php - PHP 和 Mysql 查询无法按预期工作
- android - Firebase setPersistenceEnabled(true) 下载的数据怎么样
- android - android things manifest.xml 中的 bindservice 选项 ACTION_BOOT_COMPLETED