如何在Java中实现 像Delphi中的 Midstr 函数 和 pos 函数 如何在Java中实现 像Delphi中的 Midstr 函数 和 pos 函数 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【Java_yR_26】截止到2008-06-26 14:42:03的历史汇总数据(不包括此帖):发帖数:2 发帖分:70 结贴数:2 结贴分:70 未结数:0 未结分:0 结贴率:100.00% 结分率:100.00% 敬礼! 能有详细实现吗,我自己也试着实现过pos没有问题,就是midstrpublic String myMidStr(String expr,int start,int end){ String str = ""; str = expr.substring(m,m+n); return str;}使用的时候总是感觉有点问题 public String myMidStr(String expr,int start,int end) { String str = ""; str = expr.substring(m,m+n); return str; } 呵呵你的代码 start end 都没有用到啊?按照你的意思估计应该替换了现在 m,n public String myMidStr(String expr,int start,int end) { String str = ""; str = expr.substring(start,start+end); return str; } public static String subStrByFlag(String s,String sStart,String sEnd){ return s.substring(s.indexOf(sStart)+sStart.length(),s.indexOf(sEnd)); }这是我的字符串截取。 sStart,sEnd 可以是任意字符串。这个函数采集系统常用。你可以参考一下。 public static String midString(String expr, int start, int end) { if (expr == null) return ""; if (expr.length() == 0) return expr; if (start < 0 || end < 0) return ""; if (start == end) { if (start < expr.length()) return "" + expr.charAt(start); else return ""; } if (start > end) { int t = start; start = end; end = t; } if (end >= expr.length()) { end = expr.length() - 1; } return expr.substring(start, end);} 代码如下,要注意 Java 中第一个字符的索引为 0 而不是 Delphi 中的 1。public static String midString(String expr, int start, int end) { if (expr == null) return ""; if (expr.length() == 0) return expr; if (start < 0 || end < 0) return ""; if (start == end) { if (start < expr.length()) return "" + expr.charAt(start); else return ""; } if (start > end) { int t = start; start = end; end = t; } ++end; //Delphi 中截取的子串包含 start 和 end 索引位置的字符,而 substring 不包含 end 对应字符。 if (end >= expr.length()) { end = expr.length() - 1; } return expr.substring(start, end);} Pos 在 Java 中的实现:public static int posString(String substr, String source) { if (substr == null || source == null) return -1; return source.indexOf(substr);}同样需要注意,Java 中第一个字符的索引为 0 而不是 Delphi 中的 1,所以查找不到子串返回的是 -1 而不是 Delphi 中的 0。 求助JComboBox的问题 JAVA弱弱问题 ? 一个初级问题 请教内部类一般有那些作用? 我想在jtable单元格中通过鼠标点击可生成一个bar ,然后bar还可以在单元格中被鼠标水平拖动,也可以拖到不同行中(同列),希望大家指点, 在设置环境变量时,打开我的电脑属性,却出现对指定设备,路径或文件的访问被拒绝!我该怎么办啊,急!急!急! 【如何让 ToolTipText 内容立即显示?】 Java中static申明后的变量有什么用? 为什么我的这段程序用JDK(JAVAC)编译通不过? 奇怪,变量名怎么可以用中文? 用Java检测Tomcat是否运行完好中遇到的问题.(内详)
楼主【Java_yR_26】截止到2008-06-26 14:42:03的历史汇总数据(不包括此帖):
发帖数:2 发帖分:70
结贴数:2 结贴分:70
未结数:0 未结分:0
结贴率:100.00% 结分率:100.00%
敬礼!
public String myMidStr(String expr,int start,int end)
{
String str = "";
str = expr.substring(m,m+n);
return str;
}
使用的时候总是感觉有点问题
{
String str = "";
str = expr.substring(m,m+n);
return str;
} 呵呵你的代码 start end 都没有用到啊?按照你的意思估计应该替换了现在 m,n
public String myMidStr(String expr,int start,int end)
{
String str = "";
str = expr.substring(start,start+end);
return str;
}
return s.substring(s.indexOf(sStart)+sStart.length(),s.indexOf(sEnd));
}这是我的字符串截取。 sStart,sEnd 可以是任意字符串。
这个函数采集系统常用。你可以参考一下。
if (expr == null) return "";
if (expr.length() == 0) return expr;
if (start < 0 || end < 0) return "";
if (start == end) {
if (start < expr.length()) return "" + expr.charAt(start);
else return "";
}
if (start > end) {
int t = start;
start = end;
end = t;
}
if (end >= expr.length()) {
end = expr.length() - 1;
}
return expr.substring(start, end);
}
public static String midString(String expr, int start, int end) {
if (expr == null) return "";
if (expr.length() == 0) return expr;
if (start < 0 || end < 0) return "";
if (start == end) {
if (start < expr.length()) return "" + expr.charAt(start);
else return "";
}
if (start > end) {
int t = start;
start = end;
end = t;
}
++end; //Delphi 中截取的子串包含 start 和 end 索引位置的字符,而 substring 不包含 end 对应字符。
if (end >= expr.length()) {
end = expr.length() - 1;
}
return expr.substring(start, end);
}
public static int posString(String substr, String source) {
if (substr == null || source == null) return -1;
return source.indexOf(substr);
}
同样需要注意,Java 中第一个字符的索引为 0 而不是 Delphi 中的 1,所以查找不到子串返回的是 -1 而不是 Delphi 中的 0。