2015-10-13 40 views
0

我想從我的字符串中獲取元素,至此我已經從JList中獲得了getSelectedValue().toString。 它返回[1] testString從java中的字符串中獲取元素的快速方法

我想要做的只是從字符串中獲得1。有沒有辦法只從字符串中獲取該元素或從字符串中刪除所有其他元素?

我曾嘗試:

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

是的。你有沒有嘗試過任何東西? – SomeJavaGuy

+0

@KevinEsche 我試過 String longstring; longstring = Customer_list.getSelectedValue()。toString(); int index = shortstring.indexOf(']'); String firstPart = myStr.substring(0,index); – Nina

+0

你們都已經擁有它了,'String#substring(int)'定義從開始索引到結束的子串。這隻會給你'[1]'後面的所有內容。如果使用'String#substring(int,int)',它被定義爲從pos'x'創建一個子字符串來排除pos'y',那麼你可以這樣做:'longstring.substring(0,longstring.indexOf (「]」)+ 1)'。 – SomeJavaGuy

回答

1

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

  1. 正則表達式
  2. String#replaceAll
  3. String#substring

請參見下面的代碼ü所有的方法。

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

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("]", ""); 

我的字符串已經縮短,並且[和]以後分兩步刪除。

相關問題