快速获取java中字符串元素的方法

时间:2015-10-13 10:05:16

标签: java substring

我正试图从我的字符串中获取一个元素,因为我从JList获得了getSelectedValue().toString。 它返回[1] testString

我想要做的只是从字符串中获取1。有没有办法只从字符串中获取该元素或从字符串中删除所有其他元素?

我试过了:

String longstring = Customer_list.getSelectedValue().toString();
int index = shortstring.indexOf(']');
String firstPart = myStr.substring(0, index); 

2 个答案:

答案 0 :(得分:1)

你有很多方法可以做到,例如

  1. 正则表达式
  2. String#replaceAll
  3. String#substring
  4. 请参阅以下代码以使用所有方法。

    import java.util.*;
    import java.lang.*;
    import java.util.regex.Matcher;  
    import java.util.regex.Pattern;
    
    class Test {  
        public static void main(String args[]) {
        String[] data = { "[1] test", " [2] [3] text ", " just some text " };
    
        for (String s : data) {
            String r0 = null;
            Matcher matcher = Pattern.compile("\\[(.*?)\\]").matcher(s);
            if (matcher.find()) {
                r0 = matcher.group(1);
            }
            System.out.print(r0 + " ");
        }
        System.out.println();
    
        for (String s : data) {
            String r1 = null;
            r1 = s.replaceAll(".*\\[|\\].*", "");
            System.out.print(r1 + " ");
        }
        System.out.println();
    
        for (String s : data) {
            String r2 = null;
            int i = s.indexOf("[");
            int j = s.indexOf("]");
            if (i != -1 && j != -1) {
                r2 = s.substring(i + 1, j);
            }
            System.out.print(r2 + " ");
        }
        System.out.println();
        }
    }
    

    但结果可能会有所不同,例如String#replaceAll会在输入不符合预期时给出错误的结果。

      

    1 2 null

         

    1 3 just some text

         

    1 2 null

答案 1 :(得分:0)

最适合我的是String#replace(charSequence, charSequence)String#substring(int,int)

相结合

我做了如下:

        String longstring = Customer_list.getSelectedValue().toString();
        String shortstring = longstring.substring(0, longstring.indexOf("]") + 1);
        String shota = shortstring.replace("[", "");
        String shortb = shota.replace("]", "");

我的字符串已缩短,[和]已经分两步删除了。