2013-03-31 90 views
1

我的java程序從API獲取一些天氣信息。但它在文本中有怪異的字母。看起來像ASCII碼。如何從JTextArea中刪除Ascii代碼?

這裏是一個例子: 最低溫度:0 ° C(32 ° F)應該是:最低溫度:0C(32F)(我認爲)。

我怎樣才能改變呢?

+1

駕駛室您發佈的代碼? –

+0

@ Alya'aGamal對不起,當我發送帖子時,它將代碼更改爲實際字符。這是另一個例子:'最低溫度:-5 ° C(23 ° F)' –

+0

是「-5&#xB0」是輸出?什麼是輸入? –

回答

1

好一個解決方案可以發佈你可以做以下之前

String withoutDegSymbol = str.replaceAll("°", ""); 

其中str包含了你的溫度數據。

+0

感謝您的文章,但沒有工作。:/ –

1

試試這個

String s = "0°C (32°F)".replaceAll("[\u0080-\u00FF]", ""); 

,或者如果你有你的文字HTML字符引用使用

String s = "Min temp: 0°C (32°F)".replaceAll("&#x.+?;", ""); 
+0

謝謝,但沒有奏效。 :/ –

+0

檢查我的更新 –

+0

謝謝你的幫助。它可以工作,但是當天氣是0C和32F時,我可以使用這條線,但是我的api自己獲取天氣信息,所以我需要更一般的東西來改變所有的度數標誌。 Somethig就像每當有'°'用'替換它。 –

1

如果使用在你的代碼ASCII字符編碼,當你保存你的代碼,沒有你的IDE問你用什麼格式來保存它。因爲在Eclipse IDE中,如果您使用的是ASCII字符,它會提示您將代碼保存爲UTF-8格式。希望這可以幫助。

+0

是的,實際上我不記得我選擇了哪一個,第一次選擇'ok'並且什麼都沒發生,但是下次我選擇了UTF-8並且我的代碼沒有工作,所以我重新做了我所做的。 –

1

你需要知道:

°

  • 是 '度SIGN' Unicode字符
  • 編碼:HTML實體(十六進制)

所以如果這是你有的正義問題(我的意思是這是你使用「度符號」的唯一字符),所以你可以轉換它manu盟友就像那個:

String s = "Min temp: 0°C (32°F)".replaceAll("°", "°"); 
System.out.println(s); 

如果這不是你有特殊字符,所以您可以使用:Class StringEscapeUtilsjsoup library將其轉換成Java

+0

謝謝它運行良好,但結果是0和32的所有情況下,實際上它應該從api得到天氣,每次都是不同的。我希望有一種方法只能改變溫帶標誌,現在只能改變數字。 –

+0

溫度*抱歉。 –

+0

你能舉個例子嗎? –