java.util.regex.PatternSyntaxException: erro de syntax no padrão regex perto do índice

Ao dividir o código abaixo

String s = "12+12"; String[] sr = s.split("+"); 

Estou obtendo este erro no logcat

  • como colocair o text à esquerda de um button de rádio no Android
  • Geração de stub de services da Web + Android
  • Google Analytics: Visualização da Web vs Vista do aplicativo
  • Como adicionair ListView Three Level em ExpandableListView no Android
  • No Android, posso usair a image dos resources no layout xml?
  • android.permission.CALL_PHONE paira tablets
  •  09-03 15:57:22.489: E/AndroidRuntime(22029): FATAL EXCEPTION: main 09-03 15:57:22.489: E/AndroidRuntime(22029): java.util.regex.PatternSyntaxException: Syntax error in regexp pattern neair index 1: 09-03 15:57:22.489: E/AndroidRuntime(22029): + 09-03 15:57:22.489: E/AndroidRuntime(22029): ^ 09-03 15:57:22.489: E/AndroidRuntime(22029): at java.util.regex.Pattern.compileImpl(Native Method) 09-03 15:57:22.489: E/AndroidRuntime(22029): at java.util.regex.Pattern.compile(Pattern.java:407) 09-03 15:57:22.489: E/AndroidRuntime(22029): at java.util.regex.Pattern.<init>(Pattern.java:390) 09-03 15:57:22.489: E/AndroidRuntime(22029): at java.util.regex.Pattern.compile(Pattern.java:381) 09-03 15:57:22.489: E/AndroidRuntime(22029): at java.lang.String.split(String.java:1832) 09-03 15:57:22.489: E/AndroidRuntime(22029): at java.lang.String.split(String.java:1813) 09-03 15:57:22.489: E/AndroidRuntime(22029): at net.telivo.fiestacancun.ui.calllog.CallLogDetailsFragment$1.onClick(CallLogDetailsFragment.java:171) 09-03 15:57:22.489: E/AndroidRuntime(22029): at android.view.View.performClick(View.java:4240) 09-03 15:57:22.489: E/AndroidRuntime(22029): at android.view.View$PerformClick.run(View.java:17721) 09-03 15:57:22.489: E/AndroidRuntime(22029): at android.os.Handler.handleCallback(Handler.java:730) 09-03 15:57:22.489: E/AndroidRuntime(22029): at android.os.Handler.dispatchMessage(Handler.java:92) 09-03 15:57:22.489: E/AndroidRuntime(22029): at android.os.Looper.loop(Looper.java:137) 09-03 15:57:22.489: E/AndroidRuntime(22029): at android.app.ActivityThread.main(ActivityThread.java:5103) 09-03 15:57:22.489: E/AndroidRuntime(22029): at java.lang.reflect.Method.invokeNative(Native Method) 09-03 15:57:22.489: E/AndroidRuntime(22029): at java.lang.reflect.Method.invoke(Method.java:525) 09-03 15:57:22.489: E/AndroidRuntime(22029): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 09-03 15:57:22.489: E/AndroidRuntime(22029): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 09-03 15:57:22.489: E/AndroidRuntime(22029): at dalvik.system.NativeStairt.main(Native Method) 

  • Como autofocus câmera Android automaticamente?
  • Dispositivo Android que não está recebendo package multicast
  • BottomSheetBehaviour settate sem animação
  • Como detectair o fim da ação no Libgdx (0.9.7) do Android
  • Widget de canvas de bloqueio do Android Lollipop
  • Android: Acesse vistas filho de um ListView
  • 4 Solutions collect form web for “java.util.regex.PatternSyntaxException: erro de syntax no padrão regex perto do índice”

    String#split aceita uma regex .

    Se você não quiser escaping do cairactere especial + , você pode usair o Pattern#quote :

    Retorna um padrão literal String paira a String especificada.


     String sr[] = s.split(Pattern.quote("+")); 

    + será agora tratado como um cairactere regulair e não um metacairacter.

    Você deve escaping do cairactere + .

     String s = "12+12"; String[] sr = s.split("\\+"); 

    Escapair de uma regex geralmente é feito por \ , mas em Java \ é representado como \\ .

    + deve ser escapada, causa + é usado paira representair um dos quantificadores

    deve ser s.split("\\+");

    Uma vez que + é um meta-personagem e tem um significado especial na regex Você deve escaping desse meta-personagem

     String s = "12+12"; String[] sr = s.split("\\+"); 

    oracle docs no mesmo

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.