2015-03-31 170 views
-2

工具提示功能对于1个对象正常工作,但是当更多的对象在此时添加时失败。垃圾字符“”被添加并停止应用程序工具提示功能工作

catalina.out对象显示时没有垃圾字符,但是当我通过f12查看UI时,可以看到垃圾字符""

在java代码中我使用了replaceAllsplit但没有成功。

代码 -

 sHasCP1+="ISS-0000430ISS-0000434ISS-0000435ISS-0000436"; 
    //sHasCP1 = sHasCP1.replace("" , ";"); 
    //sHasCP1 = sHasCP1.replace("[^a-zA-Z0-9]" , " "); 
    String[] seperator = new String[50]; 
    seperator = sHasCP1.split(""); 
    List<String> list = (List) Arrays.asList(seperator); 
    StringBuilder name = new StringBuilder(); 
    //display elements of List 
    System.out.println("String array converted to List"); 
    for(int i=0; i < list.size(); i++){ 
     name.append(list.get(i)); 

      if (i != list.size()-1){ 

      name.append(", "); 

     } 

     System.out.println(name.toString()); 
    } 

,我传递的名称值标题 -

sbOut.append("<img src=\"..conCP.gif\" border=\"0\" title=\""+name+ "\"/>"); 
+1

''是Ctrl-G又名ASCII BEL控制字符的HTML实体,历史上用于发出哔声(铃声)。另外,'&'被编码为实体'&'。也许BEL字符“u0007”最初被添加到字符串中。也许TAB是有意的。 **对于正则表达式:'split(“\\ &#7;”'。** – 2015-03-31 11:58:21

+0

请你可以详细说明,我该如何摆脱这些字符? – Raz 2015-03-31 12:25:36

+0

所以你知道,定义一个空的'String []'是无用的。当你将变量重新分配给另一块内存时,你只是把它扔掉了 - 由split(...)返回的那个# – 2015-03-31 12:35:16

回答

0

不知道HTML实体被引入何时何地,应该这样做:

final String REPLACEMENT = "\t"; // Or ""? 
sHasCP1 = sHasCP1.replace("&amp;#7;", REPLACEMENT); 
sHasCP1 = sHasCP1.replace("&#7;", REPLACEMENT); 
sHasCP1 = sHasCP1.replace("\u0007", REPLACEMENT); 

在第一个版本中,我留下了一个TAB字符。 ", "左右也可以。

更好的是检查/调试/记录确切的字符串。

+0

非常感谢。:) – Raz 2015-03-31 12:41:05