Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文本保持在[]和Java之间_Java_Search - Fatal编程技术网

将文本保持在[]和Java之间

将文本保持在[]和Java之间,java,search,Java,Search,我有几个字符串(它们类似于600000++),如下所示: [59395820]:学术英语:词汇2012版-学习手册,科林·坎贝尔 [2651]:Α [17067]:讨论行动互动,λλαασλκ 我只想将值保持在[]之间。例如,在第一个字符串上,我想保留59395820等 在不使用正则表达式、jsoup等的情况下,有没有办法保存它? 感谢您抽出时间您可以在您的情况下使用String.split(): String newString =s.substring(s.indexOf('[')+1,s.

我有几个字符串(它们类似于600000++),如下所示:

[59395820]:学术英语:词汇2012版-学习手册,科林·坎贝尔

[2651]:Α

[17067]:讨论行动互动,λλαασλκ

我只想将值保持在[]之间。例如,在第一个字符串上,我想保留59395820等

在不使用正则表达式、jsoup等的情况下,有没有办法保存它?
感谢您抽出时间

您可以在您的情况下使用
String.split()

String newString =s.substring(s.indexOf('[')+1,s.indexOf(']'));
yourString.split(\\[”[1]。split(\\])[0];
我们在“[”上拆分,必须用“\”转义以避免正则表达式。我们通过获取拆分数组的第二个元素来获取此字符之后的所有内容。然后我们在“]”上再次拆分,并通过获取第二个拆分数组的第一个元素来获取之前的所有内容

publicstaticvoidmain(字符串[]args){
字符串测试=“[59395820]:学术英语:词汇2012版-学习手册,科林·坎贝尔”;
字符串结果=test.split(“\\[”[1]。split(“\\]”[0];
系统输出打印项次(结果);
}

在您的情况下,可以使用
String.split()

yourString.split(\\[”[1]。split(\\])[0];
我们在“[”上拆分,必须用“\”转义以避免正则表达式。我们通过获取拆分数组的第二个元素来获取此字符之后的所有内容。然后我们在“]”上再次拆分,并通过获取第二个拆分数组的第一个元素来获取之前的所有内容

publicstaticvoidmain(字符串[]args){
字符串测试=“[59395820]:学术英语:词汇2012版-学习手册,科林·坎贝尔”;
字符串结果=test.split(“\\[”[1]。split(“\\]”[0];
系统输出打印项次(结果);
}

首先,您可以获得括号的索引:

int start=str.indexOf('[');
int end=str.indexOf(']',start);
String inBrackets=str.substring(start+1,end);
之后,您可以使用
子字符串
获取括号之间的内容:

int start=str.indexOf('[');
int end=str.indexOf(']',start);
String inBrackets=str.substring(start+1,end);
如果要对每个元素都执行此操作,它将类似于:

int start,end=0;
while((start=str.indexOf('[',end))!=-1&&(end=str.indexOf('[',start))!=-1){
    System.out.println(str.substring(start+1,end));
}

首先,您可以得到括号的索引:

int start=str.indexOf('[');
int end=str.indexOf(']',start);
String inBrackets=str.substring(start+1,end);
之后,您可以使用
子字符串
获取括号之间的内容:

int start=str.indexOf('[');
int end=str.indexOf(']',start);
String inBrackets=str.substring(start+1,end);
如果要对每个元素都执行此操作,它将类似于:

int start,end=0;
while((start=str.indexOf('[',end))!=-1&&(end=str.indexOf('[',start))!=-1){
    System.out.println(str.substring(start+1,end));
}

感谢您的快速回答,它实际上是有效的,但我很好奇上面有人回答的方法是否是更快的String newString=s.substring(s.indexOf('['))+1,s.indexOf(']');这是此解决方案,而不是字符串result=test.split(“\[”[1])。split(“\]”[0];我猜也是这样?@AggelosKypraios我不确定速度,但你可以自己测试一下。我要说的是,与子字符串解决方案相比,我的解决方案肯定会占用额外的内存(空间复杂度)。感谢您的快速回答,它确实有效,但我很好奇上面有人回答的方法是否比字符串newString=s.substring(s.indexOf('[')+1,s.indexOf(']'))更快;这是此解决方案,而不是字符串result=test.split(“\[”[1])。split(“\]”[0];我猜也是这样?@AggelosKypraios我不确定速度,但你可以自己测试一下。我会说,与子字符串解决方案相比,我的解决方案肯定会占用额外的内存(空间复杂度)。