package dell55AAData; public class XTB { // ½âÎö½á¹û´æ´¢ private String header; // °üÍ· private String deviceId; // É豸±àºÅ private String battery; // µçÁ¿ private String version; // °æ±¾ºÅ private String ccid; // CCID private String button; // °´¼ü private String rtcmSource; // RTCMÔ´ // ÓÃÓÚ¸ßЧ½âÎöµÄÁÙʱ±äÁ¿ private int startIndex; private int endIndex; private String data; public void parse(String data) { this.data = data; int fieldCount = 0; startIndex = 0; endIndex = 0; // ¿ìËÙ±éÀú×Ö·û´®½âÎö×Ö¶Î for (int i = 0; i < data.length(); i++) { if (data.charAt(i) == ',' || i == data.length() - 1) { endIndex = (i == data.length() - 1) ? i + 1 : i; assignField(fieldCount, startIndex, endIndex); fieldCount++; startIndex = i + 1; // Èç¹ûÒѾ­½âÎöÁËËùÓÐ7¸ö×ֶΣ¬ÌáǰÍ˳ö if (fieldCount >= 7) break; } } } private void assignField(int fieldIndex, int start, int end) { switch (fieldIndex) { case 0: header = data.substring(start, end); break; case 1: deviceId = data.substring(start, end); break; case 2: battery = data.substring(start, end); break; case 3: version = data.substring(start, end); break; case 4: ccid = data.substring(start, end); break; case 5: button = data.substring(start, end); break; case 6: // ¶ÔÓÚ×îºóÒ»¸ö×ֶΣ¬ÐèҪȷ±£»ñÈ¡µ½×Ö·û´®Ä©Î² rtcmSource = data.substring(start); break; } } // ===== ½á¹û»ñÈ¡·½·¨ ===== public String getHeader() { return header; } public String getDeviceId() { return deviceId; } public String getBattery() { return battery; } public String getVersion() { return version; } public String getCcid() { return ccid; } public String getButton() { return button; } public String getRtcmSource() { return rtcmSource; } }