2016-02-10 5 views
0

Это может быть пустяковый дубликат. Тем не менее я не смог найти решение для него. Да, я пытался с регулярным выражением, но есть ли другой способ его решения?Как удалить специальный символ в строке

String s="This is a â¦sample ⦠Java class to show the issueâ¨\nHow to solve it?"; 

     try { 
     System.out.print("ANSWER="+URLDecoder.decode(s, "UTF-8")); ; 
     } catch (UnsupportedEncodingException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

Как я могу исправить эту проблему? Может кто-нибудь помочь Спасибо заранее

Выход консоли

Invalid layout of java.lang.String at value 
# 
# A fatal error has been detected by the Java Runtime Environment: 
# 
# Internal Error (javaClasses.cpp:136), pid=17620, tid=14220 
# fatal error: Invalid layout of preloaded class 
# 
# JRE version: (7.0_79-b15) (build) 
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.79-b02 mixed mode windows-amd64 compressed oops) 
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows 
+0

Я думаю, что ошибка происходит из-за '\ n' в строке, если это в случае, вы можете избежать этого, если предыдущая обратная косая черта. Если вы пытаетесь удалить эти символы из строки, вы можете использовать ['[^ \ w \ s]'] (https://regex101.com/r/oZ5vO7/1) и заменить пустой строкой. – Tushar

ответ

1

Попробуйте

String yourString= "This is a â¦sample ⦠Java class to show the issueâ¨\nHow to solve it?"; 
     Pattern myPattern = Pattern.compile("[^a-zA-Z0-9]"); 
     Matcher myMatcher = myPattern.matcher(yourString); 
      while(myMatcher.find()) 
      { 
       String temp= myMatcher.group(); 
       yourString=yourString.replaceAll("\\"+temp, " "); 
      } 
System.out.println(yourString); 
Смежные вопросы