我有一个字符串,"004-034556"我想分成两个字符串:
string1="004";
string2="034556";
Run Code Online (Sandbox Code Playgroud)
这意味着第一个字符串将包含之前的字符'-',第二个字符串将包含之后的字符'-'.我还想检查字符串是否包含'-'在其中.如果没有,我会抛出异常.我怎样才能做到这一点?
我正在尝试JTextArea使用正则表达式拆分文本以拆分字符串\n然而,这不起作用,我也试过\r\n|\r|n和许多其他正则表达式的组合.码:
public void insertUpdate(DocumentEvent e) {
String split[], docStr = null;
Document textAreaDoc = (Document)e.getDocument();
try {
docStr = textAreaDoc.getText(textAreaDoc.getStartPosition().getOffset(), textAreaDoc.getEndPosition().getOffset());
} catch (BadLocationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
split = docStr.split("\\n");
}
Run Code Online (Sandbox Code Playgroud) Java是否有内置的方法来转义任意文本,以便它可以包含在正则表达式中?例如,如果我的用户输入"$ 5",我想在输入结束后完全匹配而不是"5".
我需要用空格分割我的String.为此,我试过:
str = "Hello I'm your String";
String[] splited = str.split(" ");
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.
Java官方文档指出:
"boo:and:foo"例如,字符串使用这些表达式生成以下结果Regex结果:
{ "boo", "and", "foo" }"
Run Code Online (Sandbox Code Playgroud)
这就是我需要它工作的方式.但是,如果我运行这个:
public static void main(String[] args){
String test = "A|B|C||D";
String[] result = test.split("|");
for(String s : result){
System.out.println(">"+s+"<");
}
}
Run Code Online (Sandbox Code Playgroud)
它打印:
><
>A<
>|<
>B<
>|<
>C<
>|<
>|<
>D<
Run Code Online (Sandbox Code Playgroud)
这远非我所期望的:
>A<
>B<
>C<
><
>D<
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
String fname="C:\textfiles\db\query\query.txt";
Run Code Online (Sandbox Code Playgroud)
这是我需要分割它的字符串.
我试过这个
String [] items=fname.split("\");
Run Code Online (Sandbox Code Playgroud)
但不行.
String [] items=fname.split("\\"); also not working...
Run Code Online (Sandbox Code Playgroud)
如何分割这个字符串......
在我的Java应用程序中,我需要在两种情况下使用相同的 "目标" 找到索引和拆分字符串.目标只是一个点.
查找索引(通过indexOf和lastIndexOf)不使用正则表达式,所以
String target = ".";
String someString = "123.456";
int index = someString.indexOf(target); // index == 3
Run Code Online (Sandbox Code Playgroud)
给了我需要的索引.
但是,我也想用这个"目标"来分割一些字符串.但现在目标字符串被解释为正则表达式字符串.所以当我想拆分字符串时,我不能像以前一样使用相同的目标字符串...
String target = ".";
String someString = "123.456";
String[] someStringSplit = someString.split(target); // someStringSplit is an empty array
Run Code Online (Sandbox Code Playgroud)
所以我需要以下任何一种:
有人可以帮忙吗?您是否同意标准java平台使用正则表达式进行"拆分"而不使用正则表达式"indexOf"似乎有点奇怪?
我敢肯定我只是在这里俯瞰一些东西......
有没有一种简单的方法可以在显式字符上拆分字符串而不应用RegEx规则?
例如,我收到一个带有动态分隔符的字符串,我知道第5个字符定义了分隔符.
String s = "This,is,a,sample";
Run Code Online (Sandbox Code Playgroud)
为此,它很简单
String delimiter = String.valueOf(s.charAt(4));
String[] result = s.split(delimiter);
Run Code Online (Sandbox Code Playgroud)
但是,当我有一个特殊的RegEx字符的分隔符时,这不起作用:
String s = "This*is*a*sample";
Run Code Online (Sandbox Code Playgroud)
那么......有没有办法在显式字符上拆分字符串而不尝试应用额外的RegEx规则?我觉得我必须错过一些非常简单的东西.
我有以下字符串"ABC"和"AAA||BBB"
我正在尝试split使用字符,"||"但该split方法将此作为正则表达式,返回一个字符数组而不是{"ABC"}和{"AAA", "BBB"}
我试着用反斜杠击中酒吧,但那没用.
如何使split方法"||"作为字符串而不是正则表达式?
谢谢
我有一个字符串= 12.05.2014
而我正试图用"分裂".但由于某种原因它返回空数组.
System.out.println(newDate);
System.out.println(newDate.length());
String [] dateCells = newDate.split(".");
StringBuilder sBuilder = new StringBuilder();
sBuilder.append(dateCells[2]).append(dateCells[0]).append(dateCells[1]);
System.out.println(sBuilder.toString());
Run Code Online (Sandbox Code Playgroud)
输出是:
12.05.2014
10
//empty line
Run Code Online (Sandbox Code Playgroud)