我正在尝试拆分格式
的特定字符串0001,0004,dd/mm/yy hh:mm:ss,01,value01,value02;
以便提取并保存value01
和value02
。我怎么能这样做?
这是我到目前为止所尝试的内容:
//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。 Image of error description
也尝试了这种方法:
//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);
答案 0 :(得分:1)
此:
String temp = parts[5];
String lum = parts[6];
应该是这样的:
String temp = parts[4];
String lum = parts[5];
请记住arrays in Java are zero-based。所以,如果你这样做:
String[] parts = "0001,0004,dd/mm/yy hh:mm:ss,01,value01,value02".split(",");
然后" 0001"会在parts[0]
," 0004"在parts[1]
," value01"在parts[4]
等。
答案 1 :(得分:0)
实现你想要做的事情非常简单。
假设你的字符串总是看起来像:
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(",");
答案 2 :(得分:0)
请找到以下代码。它在安德鲁的代码中只有一点修改。由于我们在分割成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);
}
}