2012-07-06 58 views
2

我有一個包含數據結構的文件。數據以字節形式存儲。我想要顯示一個數據(人的名字)來屏幕。名字的大小約爲12個字符。但數據可能少於或等於12個字符。我將字節數組轉換爲字符串並顯示數據。當試圖使用system.out.println方法顯示數據時,它會顯示數據和不需要的字符。如何只顯示想要的數據。如何從字符串中刪除尾隨字符

我試圖用下面的代碼

// here Name is a byte array 
title = new String(Name); 
System.out.println("Title = " + title); 

輸出I接收是

Title = area1���������� 

我想僅 'AREA1'。請提供解決方案來解決它

+0

感謝薩米爾編輯問題 – Riskhan 2012-07-06 06:32:53

+0

標題的正則表達式= new String(Name).trim(); – jpa 2012-07-06 06:52:32

回答

2
System.out.println("Title = area1����������".replaceAll("([^A-Za-z0-9 ])", "")); 

給予:Title area1,也可以加.replaceAll("\ \ "," "));或調整,只要你喜歡

+0

有點懷疑,我不想壓制' - ','_','。','/'是否有可能? – Riskhan 2012-07-06 09:22:07

+0

@harekrishna - 自然地:你在正則表達式的''(空白)和']'之前連接這些符號:**「([^ A-Za-z0-9 -_./])"** – 2012-07-06 10:03:45

+0

非常感謝你 – Riskhan 2012-07-06 10:10:36

1

你試過了嗎?

String decoded = new String(Name, "UTF-8"); 
+0

你也可以嘗試,UTF-16LE或UTF-16BE – user370305 2012-07-06 06:23:21

+0

我試着用UTF-8,UTF-16LE和UTF-16BE,但沒有變化 – Riskhan 2012-07-06 06:34:35

+0

謝謝解決方案 – Riskhan 2012-07-06 10:11:35

2
String title = new String(Name ,"UTF-8"); 
    System.out.println("Title = " + title); 
+0

非常感謝 – Riskhan 2012-07-06 10:19:08

+0

歡迎...你可以 – 2012-07-06 10:23:49

0

使用StringBuilder類,通過附加從輸入文件流中讀取的每個字符來構建字符串,直到到達文件結尾。一旦到達文件結尾,立即通過StringBuilder類的toString()方法返回字符串。

StringBuilder sb = new StringBuilder(); 
FileInputStream fis = new FileInputStream(file); 
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");// 
int c = 0; 
while ((c = isr.read()) != -1) { 
    sb.append((char) c); 
} 
String fixedString = sb.toString(); 
+0

非常感謝你 – Riskhan 2012-07-06 10:20:12

0

在這裏找到更新的代碼:

 // here Name is a byte array 
    String title = new String("area1����������"); 
    System.out.println("Title = " + title); 

    StringBuilder sb = new StringBuilder(title); 
    StringBuilder sb2 = new StringBuilder(); 
    for(int i=0;i<sb.length();i++) 
    { 
     if(Character.isLetterOrDigit(sb.charAt(i))) 
     { 
      sb2.append(sb.charAt(i)); 
     } 
    } 

    title = sb2.toString(); 
    System.out.println("Title = " + title); 
+0

非常感謝你 – Riskhan 2012-07-06 10:19:37