当前位置:编程学习 > JAVA >>

java截取字符串

假如現在我有一個字符串string="das,fds,dsa,das,dsa,gfd";我想把用逗號分開的字符串都截取出來,請問怎麼截取? --------------------编程问答-------------------- String strs = string.split(","); --------------------编程问答-------------------- 写错了
String[] strs = string.split(","); --------------------编程问答--------------------
public class b {
public static void main(String[] args) {
String s="das,fds,dsa,das,dsa,gfd";
String d[]=s.split(",");
for(int i=0; i<d.length; i++) { 
    System.out.print(d[i]); 
   } 
}
} --------------------编程问答-------------------- 看来 不用我说了。。。答案 就在上面。。。。 --------------------编程问答-------------------- StringTokenizer 效率会好一些 --------------------编程问答--------------------
引用 5 楼 hanyufeng1985528_163 的回复:
StringTokenizer 效率会好一些

StringTokenizer 都过时了。 --------------------编程问答-------------------- 白送分的题,二楼正解。 --------------------编程问答-------------------- 二楼 正解 --------------------编程问答-------------------- .... 答案已经存在
--------------------编程问答-------------------- 顶下,顺便学习下 --------------------编程问答--------------------

package c;

public class Test {
public static void main(String[] args) {
// 假如現在我有一個字符串string="das,fds,dsa,das,dsa,gfd";
// 我想把用逗號分開的字符串都截取出來,請問怎麼截取?
String s = "das,fds,dsa,das,dsa,gfd";
String[] strs = obtain(s,',');

for (String string : strs) {
System.out.println(string);
}
}
/**
 * @param s
 * @return
 */
private static String[] obtain(String s, char cr) {
boolean b = true;
String[] strs = null;

for (int i = 0, k=0, len = s.length(); i < len; i++) {
if(b){
int n = 0;
for (int j = 0, len2 = s.length(); j < len2; j++) {  
if(s.charAt(j) == cr){
n++;
}  
}
strs = new String[n+1];
b = false;  
continue;
}

if(s.charAt(i) != cr){
strs[k] = (strs[k]==null) ? "" + s.charAt(i) : strs[k]+s.charAt(i);
}else{
k++;
}
}
return strs;

}

--------------------编程问答--------------------
引用 6 楼 closewbq 的回复:
StringTokenizer 都过时了。

没有过时,只是使用起来效率的问题。像处理楼主这个小规模的问题,StringTokenizer还真是一个好东西。

import java.util.StringTokenizer;

public class TestStrTok {
public static void main(String[] args) {
String str = "das,fds,dsa,das,dsa,gfd";
StringTokenizer strTok = new StringTokenizer(str, ",");
String[] items = new String[strTok.countTokens()];
// countTokens()将返回一共拆分出多少个字符串;决定分配多少个空间
int count = 0;
while (strTok.hasMoreTokens()) {
// hasMoreTokens()测试还还有没有字符串需要分配,等价于hasMoreElements();
items[count++] = strTok.nextToken();
// nextToken()返回下一个字符串值;通过nextToken()方法,将拆分后的字符串分配给String类型的数组中.
}
for (int i = 0; i < items.length; i++) {
System.out.println(items[i]);
}
}

}
输出结果:
das
fds
dsa
das
dsa
gfd
--------------------编程问答--------------------
引用 12 楼 ocaicai 的回复:
没有过时,只是使用起来效率的问题。像处理楼主这个小规模的问题,StringTokenizer还真是一个好东西。

当然split也不错哈!

public class TestSplit {

public static void main(String[] args) {
String str = "das,fds,dsa,das,dsa,gfd";
String[] items = str.split(",");
for (int i = 0; i < items.length; i++) {
System.out.println(items[i]);
}
}

}
--------------------编程问答-------------------- 像2楼那样点一下不就行了吗,对楼主还有帮助,有必要把代码都写全吗,想不通? --------------------编程问答-------------------- 3 楼正解 --------------------编程问答-------------------- 用正则表达式的方式截取!!! --------------------编程问答-------------------- String[] s = string.split(","); --------------------编程问答-------------------- 楼上正解 --------------------编程问答-------------------- 答案就在二楼 --------------------编程问答-------------------- 答案已经有了 --------------------编程问答--------------------

结贴率太低了. --------------------编程问答-------------------- StringTokenizer 好像是过时了! --------------------编程问答--------------------  */
public static void main(String[] args) {
// TODO Auto-generated method stub

      String a = "das,fds,dsa,das,dsa,gfd";
      String[]  b = a.split(",");
      for (int i = 0; i < b.length; i++) {
System.out.println(b[i]);
}
}
--------------------编程问答--------------------
引用 7 楼 dr_lou 的回复:
白送分的题,二楼正解。

+1 --------------------编程问答-------------------- String 的方法很多的,现在不是有中文版的帮助API吗?
你没事多看看,很有帮助的,
这个很重要的,

学习室学方法,不要去死记硬背~
ok --------------------编程问答-------------------- --------------------编程问答-------------------- 我要从这个字符串读取指定变量的信息呢?
string str="[Type=UPC-A][Final=10][Nnmber=9]";
如:我要知道Type等号后边的值是多少,Final等号后边的值是多少,Nnmber等号后边的值是多少。请问各位告诉,如何解决? --------------------编程问答-------------------- String[] s = string.split(","); --------------------编程问答-------------------- 不用正则可以使用 Scanner
Scanner scanner = new Scanner("das,fds,dsa,das,dsa,gfd").useDelimiter(",");
while(scanner.hasNext())
    System.println(scanner.next());
scanner.close();
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,