Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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 - Fatal编程技术网

拆分java字符串

拆分java字符串,java,Java,可能重复: 我有一个由逗号(,)分隔的单词字符串,我需要标记主字符串或将其拆分为子字符串。例如,string=“file1,param1,file2,param2,file3,” 字符串的意思是所有文件名和传递给它的参数的列表。喜欢 对于文件1-->参数1, 文件2-->参数2和 file3不存在任何参数 所以我需要提取文件名和参数,如果有的话。如果没有参数,我需要获取空字符串(“”) import java.util.ArrayList; 导入java.util.List; 导入java.u

可能重复:

我有一个由逗号(,)分隔的单词字符串,我需要标记主字符串或将其拆分为子字符串。例如,
string=“file1,param1,file2,param2,file3,”
字符串的意思是所有文件名和传递给它的参数的列表。喜欢 对于文件1-->参数1, 文件2-->参数2和 file3不存在任何参数

所以我需要提取文件名和参数,如果有的话。如果没有参数,我需要获取空字符串(“”)

import java.util.ArrayList;
导入java.util.List;
导入java.util.StringTokenizer;
公共类XStringTokenizer{
/**
*@param args
*/
公共静态void main(字符串[]args){
String str=新字符串(“File1,param1,File2,”);
列表=新的ArrayList();
System.out.println(str.split(“,”)长度);
String[]String=str.split(“,”);

对于(inti=0;i,String.split不是这样工作的

因此,结果数组中不包括尾随的空字符串


您可以检查字符串是否以逗号结尾,然后自己添加空字符串

这不是string.split的工作方式

因此,结果数组中不包括尾随的空字符串


您可以检查字符串是否以逗号结尾,然后自己添加空字符串

使用负限制

使用负限制

看起来您应该使用

String str = new String("File1,param1,File2,");
java.util.Tokenizer tk= new java.util.Tokenizer(str,",");
while(tk.hasMoreTokens()) {
    String tokenFile= tk.nextToken();
    String tokenParam= tk.nextToken();
    // do things...
}
 String[] string = str.split(",",-1);

for String.split(String,int)表示“如果n为非正,则模式将被应用尽可能多的次,并且数组可以有任何长度。”

看起来应该使用

 String[] string = str.split(",",-1);
for String.split(String,int)声明“如果n为非正,则模式将被应用尽可能多的次,数组可以有任何长度。”

我认为str.split(“,”)仅在逗号后跟某个字符而不是“nothing”时才进行拆分,因为逗号是字符串的最后一个字符。因此,在这种情况下,拆分不会将其识别为分隔符,也不会生成数组中所需的第四个字符串,因为它将为null

我希望这对您有所帮助。

我认为str.split(“,”)只是在逗号后面跟一些字符而不是“the nothing”时才进行拆分,因为逗号是字符串的最后一个字符。因此,在这种情况下,拆分不会将其识别为分隔符,也不会生成数组中所需的第四个字符串,因为它将为null


我希望这对您有所帮助。

您只需检查字符串是否以“,”结尾,然后在列表中添加一个空字符串。您需要在末尾执行此操作

if(str.endsWith(',')) list.add("");

您只需检查字符串是否以“,”结尾,然后在列表中添加一个空字符串即可。您需要在末尾执行此操作

if(str.endsWith(',')) list.add("");

删除最后的<代码>、<代码>或考虑使用,其中包括<代码> StrugUTIL.Cug()/代码>,它确实是您想要的。

< P>删除最后的<代码>、<代码>或考虑使用,其中包括<代码> StrugUnList.Cuin()
,这完全符合您的要求。

是的,我通过将n=-1传递给split方法来更正代码,以获得所需的结果。谢谢如果这是正确的,请将答案设置为您接受的答案。谢谢!是的,我通过将n=-1传递给split方法来更正代码,以获得所需的结果。谢谢如果这是正确的结果,请请将答案设置为您接受的答案。谢谢!