Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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 split不';我不能正常工作_Java_Android - Fatal编程技术网

Java split不';我不能正常工作

Java split不';我不能正常工作,java,android,Java,Android,我正在尝试将日期(例如28.08)分成两部分:28和08 如果要使用拆分字符串,必须使用\\. String dzien[] = dataZseparatorem.split("\\."); 我刚刚尝试了这段代码,它的工作原理与预期一致: String data = "poniedziałek28.08"; String[] dni = {"poniedziałek","wtorek","środa","czwartek","piątek","sobota","niedziela"};

我正在尝试将日期(例如28.08)分成两部分:28和08


如果要使用
拆分字符串,必须使用
\\.

String dzien[] = dataZseparatorem.split("\\.");

我刚刚尝试了这段代码,它的工作原理与预期一致:

 String data = "poniedziałek28.08";
 String[] dni = {"poniedziałek","wtorek","środa","czwartek","piątek","sobota","niedziela"};
 String dataZseparatorem = "";

for(int i = 0; i < dni.length; i++){
 if(data.startsWith(dni[i]) == true){
         dataZseparatorem = data.substring(dni[i].length());
     }
 }
System.out.println(dataZseparatorem);
 String dzien[] = dataZseparatorem.split(Pattern.quote("."));

 System.out.println(dzien[0] + " " + dzien[1]);
String data=“poniedziałek28.08”;
字符串[]dni={“poniedziałek”、“wtorek”、“środa”、“czwartek”、“piątek”、“sobota”、“niedziela”};
字符串dataZseparatorem=“”;
对于(int i=0;i

请检查您的输入,看看是否在UTF-8中(带有所有重音字符)。

我尝试了与@prabugp相同的方法,但他速度更快。是的,您的代码按设计工作

尽管如此,我还是要给大家一个关于良好编码实践的提示:

当您声明数组时,可以使用语法
String dzien[]
而不是
String[]dzien
,但Oracle本身不鼓励使用该语法,他们也给出了解释,请参阅本网站引用的以下段落:

也可以将括号放在数组名称之后:

//不鼓励使用这种形式 浮式无齿船[]

然而,传统不鼓励这种形式;括号用于标识 数组类型,并应与类型名称一起显示

当然,单凭这一点并不能解决您的问题,但如果向我们展示所使用的具体数据,或许我们可以进一步提供帮助

编辑-添加

例如,我们不知道该对象是什么,也不知道该方法的实际功能:

listaMiesiecy.add(...)

它似乎是类似于ArrayList的列表类型,但您的信息并没有明确强调这一点。因此,可能这是一个自行编写的类,错误发生在其方法
add()

中,我认为模式.quote()部分不是必需的,如果只执行
.split(“.”
,会发生什么情况?另外,您想在哪里访问dzien[1]
?您只返回
dzien[0]
,并且
String dzien[]
是在您的私有方法中分配的,因此您不能在其他任何地方访问它。请提供更完整的示例。请阅读
模式的文档。请引用
。你为什么要用这种方法?好吧,我已经解决了,但它仍然不起作用。我不会说这是必须的。Pattern.quote的API文档说“此方法生成一个字符串,可用于创建与字符串s匹配的模式,就像它是一个文字模式一样”-因此,OP的问题实际上是有效的。不幸的是,输入是ok的:(但它仍在工作,你确定吗?如果你收到的输入与数组中的任何单词都不匹配,你将获得ArrayIndexOutOfBoundsException。你是否在单独的程序中尝试了该代码,以查看其他一切是否正常?因为我发布的代码按预期输出了这两个数字,这意味着问题一定在其他地方。你可以吗将它隔离到一个最小的测试用例中,并在IDE中调试以查看发生了什么?
 String data = "poniedziałek28.08";
 String[] dni = {"poniedziałek","wtorek","środa","czwartek","piątek","sobota","niedziela"};
 String dataZseparatorem = "";

for(int i = 0; i < dni.length; i++){
 if(data.startsWith(dni[i]) == true){
         dataZseparatorem = data.substring(dni[i].length());
     }
 }
System.out.println(dataZseparatorem);
 String dzien[] = dataZseparatorem.split(Pattern.quote("."));

 System.out.println(dzien[0] + " " + dzien[1]);
listaMiesiecy.add(...)