簡體   English   中英

拆分從字符數組構建的字符串

[英]Splitting a String built from a char array

我正在嘗試拆分格式的特定字符串

0001,0004,dd/mm/yy hh:mm:ss,01,value01,value02;

為了提取和保存value01value02 我怎樣才能做到這一點?

這是我到目前為止嘗試過的:

//buffer contains a String like: "0001,0004,dd/mm/yy hh:mm:ss,01,18,750"
String string = new String(buffer,0,len);

String[] parts = string.split(",");

String temp = parts[5];
String lum = parts[6];
System.out.print(temp);
System.out.print(lum);

使用此代碼,我在 Netbeans 中運行程序時得到 ArrayIndexOutofBounds。 錯誤描述圖片

也試過這個方法:

//buffer contains a String like: "0001,0004,dd/mm/yy hh:mm:ss,01,18,750"
String s= new String(buffer,0,len);

String aux = s + ",";
String[] dados = aux.split(",");          
float valor1 = Float.parseFloat(dados[5]);
float valor2 = Float.parseFloat(dados[6]);
System.out.print(aux);

這個:

String temp = parts[5];
String lum = parts[6];

應該是這樣的:

String temp = parts[4];
String lum = parts[5];

請記住, Java 中的數組是從零開始的 所以如果你這樣做:

String[] parts = "0001,0004,dd/mm/yy hh:mm:ss,01,value01,value02".split(",");

然后“0001”將在parts[0] ,“0004”在parts[1] ,“value01”在parts[4]等中。

實現您想要做的事情實際上非常容易。

假設你的字符串真的總是看起來像:
0001,0004,dd/mm/yy hh:mm:ss,01,value01,value02;

只需切斷不需要的字符串的開頭,然后提取值:

// This can be done in hundreds of ways, for the sake of simplicity i'll use substring
String s ="0001,0004,dd/mm/yy hh:mm:ss,01,value01,value02;";
String cutOff = s.substring(31, s.length()-1);
String[] results = cutOff.split(",");

請找到下面的代碼。 它只是對 Andrew 的代碼進行了一些修改。 由於我們將字符串拆分成String數組后存儲,很明顯數組索引是從0開始的,所以為了得到value01和value02,我們應該使用索引4和5。

public class JavaApplication1
 {
  public static void main(String[] args)
  {
    String str="0001,0004,dd/mm/yy hh:mm:ss,01,value01,value02";
    String [] strArr=str.split(",");
    String temp=strArr[4];
    String lum=strArr[5];
    System.out.println(temp);
    System.out.println(lum);
 }   
}

請在圖像中找到輸出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM