我必须设计一个接口,它从机器中获取数据然后绘制它。我已经设计了 fetch 部分,它会获取一串格式 A&B@.13409$13400$13400$13386$13418$13427$13406$13383$13406$13412$13419$00000$00000$
前五个A&B@.
字符是标识符。请注意,第五个字符是new line feed
ie ASCII 0xA
。
我写的功能 -
public static boolean checkStart(String str,String startStr){
String Initials = str.substring(0,5);
System.out.println("Here is start: " + Initials);
if (startStr.equals(Initials))
return true;
else
return false;
}
显示Here is start: A&B@.
哪个是正确的。
问题1:
为什么我们需要带str.substring(0,5)
ie,当我使用str.substring(0,4)
它时只显示Here is start: A&B@
-ie missing new line feed
。为什么会New Line feed
产生这种差异。
进一步提取剩余字符串我必须使用s.substring(5,s.length())
而不是s.substring(6,s.length())
ie
s.substring(6,s.length())
产生3409$13400$13400$13386$13418$13427$13406$13383$13406$13412$13419$00000$00000$
ie 缺少标识符后的第一个字符A&B@.
问题2:
我的解析功能是:
public static String[] StringParser(String str,String del){
String[] sParsed = str.split(del);
for (int i=0; i<sParsed.length; i++) {
System.out.println(sParsed[i]);
}
return sParsed;
}
它正确解析字符串String s = "A&B@.13409/13400/13400/13386/13418/13427/13406/13383/13406/13412/13419/00000/00000/";
并将函数调用为String[] tokens = StringParser(rightChannelString,"/");
但是对于 String 等String s = "A&B@.13409$13400$13400$13386$13418$13427$13406$13383$13406$13412$13419$00000$00000$"
,调用String[] tokens = StringParser(rightChannelString,"$");
根本不解析字符串。
我无法弄清楚为什么会出现这种行为。任何人都可以让我知道解决方案吗?
谢谢