求大神帮忙用java写一个函数,解析一段字符串,谢谢! 直接String[] ss = hq_str_sz000001.split(",");然后给每个元素前面加上相应的字符串就行比如ss[0] = "股票名称:"+ss[0]; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 按逗号分隔成数组呗然后遍历数组,把开头加上!你这是JS的吧,确定要用java做? 哭……前边那个hq_str_sz000001=也是字符串里的,上边的一整段都是。我就是不知道前边的空格,下划线,等号还有引号这些怎么处理了,我现在做的是解析http返回的上边这个字符串,然后以下边的格式输出 貌似是新浪还是搜狐的股票api 对,我现在就是做的一个安卓的软件,需要通过这个API获取数据,再显示出来 代码如下:package test;import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;public class test { public static void main(String args[]) { List<String> list = new ArrayList<String>(); String str = "var hq_str_sz000001=\"平安银行,11.20,11.24,11.33,11.38,11.08,11.32,11.33,26316829,297218362.63,375042,11.32,274513,11.31,394900,11.30,302500,11.29,62200,11.28,334526,11.33,263977,11.34,311051,11.35,155089,11.36,256850,11.37,2014-05-21,15:05:38,00\";"; String[] temp = str.split(","); Pattern pattern = Pattern.compile(".*_([a-z]{2}\\d{6})=\"(.*)$"); Matcher matcher = pattern.matcher(temp[0]); if(matcher.find()) { list.add(matcher.group(1)); list.add(matcher.group(2)); } for(int i=2; i<temp.length; i++) list.add(temp[i]); for(int j=0; j<list.size()-1; j++) System.out.println(list.get(j)); }}输出:(那些名称请自行补充)sz000001平安银行11.2411.3311.3811.0811.3211.3326316829297218362.6337504211.3227451311.3139490011.3030250011.296220011.2833452611.3326397711.3431105111.3515508911.3625685011.372014-05-2115:05:38 给你个方法来截取字符串package test;public class Test { public static String intercept(String str, String begin, String end, String splitStr) { String result = ""; int i; int j = 0; do { i = str.indexOf(str, j); if (i == -1) { break; } i += begin.length(); j = str.indexOf(end); if (j == -1) { break; } if (j > 0) { if (result.length() > 0) { result += str.substring(i, j); } else { result = splitStr + str.substring(i, j); } } } while (true); return result; } public static void main(String[] args) { String str = "var hq_str_sz000001=\"平安银行,11.20,11.24,11.33,11.38,11.08,11.32,11.33,26316829,297218362.63,375042,11.32,274513,11.31,394900,11.30,302500,11.29,62200,11.28,334526,11.33,263977,11.34,311051,11.35,155089,11.36,256850,11.37,2014-05-21,15:05:38,00\";"; String reString = intercept(str, "var hq_str_sz000001=\"", "\";", ","); System.out.println(reString); }}然后再按照1楼的来处理 怎样将字符串中的相同的单词,用空格来代替 JInternalFrame的大问题,急急急!!!!!! 关于接口的一点疑惑 如何让线程能在固定的时间运行?(也就是不管我在任何时间启动线程) j2se如何访问windows下代有权限的网络文件 如何解决List中的多字段排序 调用webservice接口生成的客户端代码放在什么包里面好 那位仁兄知道sun 的webserver 如何使用,到那去down 在Applet中,我如何才能打开一个新的页面? 初始化和清理问题,求教大佬~ 请教一个小问题 异常处理 刚接触这一点 关于List<?> 的疑问
然后遍历数组,把开头加上!
你这是JS的吧,确定要用java做?
package test;import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class test {
public static void main(String args[])
{
List<String> list = new ArrayList<String>();
String str = "var hq_str_sz000001=\"平安银行,11.20,11.24,11.33,11.38,11.08,11.32,11.33,26316829,297218362.63,375042,11.32,274513,11.31,394900,11.30,302500,11.29,62200,11.28,334526,11.33,263977,11.34,311051,11.35,155089,11.36,256850,11.37,2014-05-21,15:05:38,00\";";
String[] temp = str.split(",");
Pattern pattern = Pattern.compile(".*_([a-z]{2}\\d{6})=\"(.*)$");
Matcher matcher = pattern.matcher(temp[0]);
if(matcher.find())
{
list.add(matcher.group(1));
list.add(matcher.group(2));
}
for(int i=2; i<temp.length; i++)
list.add(temp[i]);
for(int j=0; j<list.size()-1; j++)
System.out.println(list.get(j));
}
}
输出:(那些名称请自行补充)
sz000001
平安银行
11.24
11.33
11.38
11.08
11.32
11.33
26316829
297218362.63
375042
11.32
274513
11.31
394900
11.30
302500
11.29
62200
11.28
334526
11.33
263977
11.34
311051
11.35
155089
11.36
256850
11.37
2014-05-21
15:05:38
String result = "";
int i;
int j = 0;
do {
i = str.indexOf(str, j);
if (i == -1) {
break;
}
i += begin.length();
j = str.indexOf(end);
if (j == -1) {
break;
}
if (j > 0) {
if (result.length() > 0) {
result += str.substring(i, j);
} else {
result = splitStr + str.substring(i, j);
}
}
} while (true);
return result;
} public static void main(String[] args) {
String str = "var hq_str_sz000001=\"平安银行,11.20,11.24,11.33,11.38,11.08,11.32,11.33,26316829,297218362.63,375042,11.32,274513,11.31,394900,11.30,302500,11.29,62200,11.28,334526,11.33,263977,11.34,311051,11.35,155089,11.36,256850,11.37,2014-05-21,15:05:38,00\";";
String reString = intercept(str, "var hq_str_sz000001=\"", "\";", ",");
System.out.println(reString);
}
}然后再按照1楼的来处理