0
我在用下面的代码的问题,我不知道在哪里甚至开始:Java子字符串缺少字符?
System.out.println("Subject: " + message.getSubject());
subjectPack = message.getSubject().replaceAll("([,|!|@|$|&|%|^|*|;|:|<|>|\"|\'|(|)|/|\\|+])", "").replaceAll("[.](?![\\w]{2,4}$)", "").replaceAll("()+|(\t)", " ");
System.out.println("Subject Line Length: " + subjectPack.length());
System.out.println("Subject: " + subjectPack);
subjectPack = subjectPack.toUpperCase().substring(message.getSubject().lastIndexOf("#")+1).toUpperCase();
System.out.println("PO Length: " + subjectPack.length());
System.out.println("PO: " + subjectPack);
subjectPack = subjectPack.substring(0,6);
和正常工作的几个其他例子,除了这一个..为什么它踢“1” ?
Subject: FW: Freight shifted on Turbana Load Po#160753
Subject Line Length: 44
Subject: FW Freight shifted on Turbana Load Po#160753
PO Length: 5
PO: 60753
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String ind
ex out of range: 6
at java.lang.String.substring(Unknown Source)
at picRead.PictureReader.sendmsg(PictureReader.java:191)
at picRead.PictureReader.main(PictureReader.java:116)
如果'subjectPack'只有长度5,那么你不能访问索引位置6. – Adam
正确的,但它应该拉160753,而不是60753. –
为什么你得到'lastIndexOf'基于'message.getSubject ()'而不是'subjectPack'? –