English 中文(简体)
Java在 (caret?) 上分裂(caret?) 无效, 这是一个特殊字符吗?
原标题:Java split on ^ (caret?) not working, is this a special character?
  • 时间:2012-05-22 02:42:27
  •  标签:
  • java
  • split

在 Java 中, 我试图分割 < code_ / code> 字符, 但它无法识别 。 解开 < code_ / code > 丢弃代码错误 。

这是个特殊人物 还是我需要做点别的事 才能让它认出来?

String splitChr = "^";
String[] fmgStrng = aryToSplit.split(splitChr); 
最佳回答

在 Java regex 中是一个特殊字符, 意思是“ 匹配输入的起始点 ” 。

You will need to escape it with "\^". The double slash is needed to escape the , otherwise Java s compiler will think you re attempting to use a special ^ sequence in a string, similar to for newlines.

不是一个特殊的逃生序列, 因此您会收到编译错误 。

简言之,请使用 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

问题回答

\\\ 匹配字符串的起始点。 您需要逃离它, 但在这种情况下您需要逃离它, 这样正则表达式解析器就能理解它意味着逃离, 所以 :

String splitChr = "\^";
...

应该让你得到你想要的。

String.split () 接受一个regex。 符号是一个特殊符号,用来标明输入序列的起始点。 您需要避开它才能使输入序列发挥作用。 您用 试图避开它是正确的, 但是它是一个特殊字符, 用来在 Java 字符串中逃避事物, 所以您需要用另一个 来逃避逃跑字符。 它会给您提供 :

\^

使用 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\可以\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

    String aryToSplit = "word1^word2";
    String splitChr = "\^";
    String[] fmgStrng = aryToSplit.split(splitChr); 
    System.out.println(fmgStrng[0]+","+fmgStrng[1]);

It should print "word1,word2", effectively splitting the string using "\^". The first slash is used to escape the second slash. If there were no double slash, Java would think ^ was an escape character, like the newline " "

上述任何答案都没有意义,这是正确的解释。

  1. As we all know, ^ doesn t need to be escaped in Java String.
  2. As ^ is special charectar in RegulalExpression , it expects you to pass in ^
  3. How do we make string ^ in java? Like this String splitstr = "\^";




相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...