从字符串数组中删除正则表达式

时间:2011-12-09 06:20:52

标签: java regex arrays string

我需要从字符串数组中删除';'。任何解决方案?

我在课堂上所做的是检索一段没有空格连接的长字符串

(thisisalongpieceofstringtobeseparated)

我通过在它们之间插入';'来分隔它们

(这;是;一个;长;片;的;串;对;是;分开;)

然后我使用.split(";")将它们添加到数组中。一切都很成功,但最后一个索引有';'

this 

is 

a 

long 

piece 

of 

string 

to 

be 

separated; 


需要删除最后一个;

根据要求,代码如下。

 while (line != null) {

            if(line.contains("../../"))
            {

                int startIndex = line.indexOf("../../") + 6;
                int endIndex = line.indexOf(">", startIndex + 1);
                String abc = "http://www.google.com/";
                String imageSrc = line.substring(startIndex,endIndex);

                //complete full url
                String xyz = abc +imageSrc;
                xyz = xyz.substring(0,xyz.indexOf('"'));
                xyz = xyz +";";
                content += xyz;
                            mStrings = content.split(";");

4 个答案:

答案 0 :(得分:2)

我认为你并没有告诉我们整个故事,因为当你在;上分开时,将会忽略尾随的;。通过运行此测试代码自行查看:

public static void main(String[] args) {
    System.out.println(Arrays.toString("a;b;c;".split(";")));
}

输出:

[a, b, c]

“回答”是什么都不做!它应该已经有用了!

答案 1 :(得分:2)

    String str="This; is; my; test;";
    String[] strArr=str.split(";");
    for(int i=0;i<strArr.length;i++)
    {
        System.out.println("Str:::"+strArr[i]);
     // add strArr[i] to an array or go through Arrays.toString()
    }

代码中没什么特别之处,我的意思是如果你使用spilled()那么它已经为你工作了,如果不是那么你的代码就有问题,发布你的代码以查看你的代码到底出了什么问题,或者做了什么这样

答案 2 :(得分:1)

在分割之前从字符串中删除最终;是不是最简单?也就是说,删除最后一个字符(假设总是;):

var newStr = str.substring(0, str.length-1);

然后拆分该字符串。

答案 3 :(得分:1)

Mikel的解决方案工作少得多,但您也可以使用StringTokenizer并将returnDelims指定为false。

http://docs.oracle.com/javase/1.4.2/docs/api/java/util/StringTokenizer.html