一串字符,前后的字符都是固定的,怎么求得中间的变化的字符串?

laosan 2007-07-26 11:32:58
String a="前面的字符串";
String b="中间的字符串";
String c="后面的字符串";

举个例子吧
d:\新建文件夹\新建文件夹\新建文件夹\1234\新建文件夹2
d:\新建文件夹\新建文件夹\新建文件夹\5678\新建文件夹2
d:\新建文件夹\新建文件夹\新建文件夹\912345\新建文件夹2

或者
e:\我的文档\我的文档\我的文档\1234\我的文档在后面
e:\我的文档\我的文档\我的文档\abcede\我的文档在后面
e:\我的文档\我的文档\我的文档\90afldsaf\我的文档在后面

怎么求中间的数字或者字符串?
...全文
293 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jingtao8177 2007-07-27
  • 打赏
  • 举报
回复
up
laosan 2007-07-27
  • 打赏
  • 举报
回复
我实际上还降低了难度,实际上是 我要求得字符串被某个固定的字符串夹着。

d:\这里前面就不定了\这里固定的前\1234\这里固定的后\这里后就不定了

我要取得的字符串的只在他周围固定,前后很远的地方都是不一样的。
bdbox@qq.com 2007-07-27
  • 打赏
  • 举报
回复
您可以用正则表达式试试:
(?<=\\)[a-zA-Z0-9]*(?=\\)

-----------------------------------------------
msn:bdbox@hotmail.com
请给我一个与您交流的机会
rambo20 2007-07-27
  • 打赏
  • 举报
回复
让我想一下
ykrocku 2007-07-27
  • 打赏
  • 举报
回复
String str1 = str.substring(str.indexOf("abc")+3);//这3是前面字符的长度
------------------
貌似还不知道相同的字符是什么吧~~~~
ykrocku 2007-07-27
  • 打赏
  • 举报
回复
最容易想到的:
顺着string循环,得到前面相同部分字符串,反过来,得到后面相同部分字符串~
bobskay 2007-07-27
  • 打赏
  • 举报
回复
楼上的真快,楼主的问题好像真的那么简单
yijie1206688 2007-07-27
  • 打赏
  • 举报
回复
package org.battwofame.hellojava.test.test2;

public class TestE {

public void test1() {
String str = "abc中间的字符mde";
String str1 = str.substring(str.indexOf("abc")+3);//这3是前面字符的长度
String str2 = str1.substring(0, str.lastIndexOf("mde")-3);//这3是后面字符的长度
System.out.println(str2); //结果
}

public static void main(String[] args) {
TestE te = new TestE();
te.test1();
}
}
ccterran 2007-07-27
  • 打赏
  • 举报
回复
可以用正则:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
public static void main (String[] args) {
Pattern pattern = Pattern.compile("([0-9a-z]+)\\\\新建文件夹2", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("d:\\新建文件夹\\新建文件夹\\新建文件夹\\1234\\新建文件夹2");
if (matcher.find()) {
System.out.println(matcher.group(1)); // => 1234
}

Matcher matcher2 = pattern.matcher("d:\\新建文件夹\\新建文件夹\\新建文件夹\\akkffkakfa222\\新建文件夹2");
if (matcher2.find()) {
System.out.println(matcher2.group(1)); // => akkffkakfa222
}
}
}
laosan 2007-07-27
  • 打赏
  • 举报
回复
不知道正则表达式能否完成?
laosan 2007-07-27
  • 打赏
  • 举报
回复
d:\这里前面就不定了\这里固定的前\1234\这里固定的后\这里后就不定了

我要取得的字符串的只在他周围固定,前后很远的地方都是不一样的。
yijie1206688 2007-07-27
  • 打赏
  • 举报
回复
把你做的那个题目的原题帖出来~~~
IhaveGotYou 2007-07-27
  • 打赏
  • 举报
回复
import java.util.regex.*;

public class Rex {

public static String getResult(String prefix, String suffix, String str) {
String rex = String.format("(%s\\\\\\w+\\\\%s)", prefix, suffix);
Pattern pa = Pattern.compile(rex);
Matcher ma = pa.matcher(str);
boolean b = ma.find();
String result = "";
if (b) {
result = ma.group(1);
System.out.println(result);
String[] a=result.split("\\\\");
if(a.length==3)
result=a[1];
}
System.out.println(result);
return result;
}

public static void main(String[] args) {
String aa = getResult("我的文档", "我的文档在后面",
"e:\\我的文档\\我的文档\\我的文档\\kk\\我的文档在后面");
}

}

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧