Java中按制表符拆分
我将一个文件逐行扫描到ArrayList中。 然后我创建一个新的ArrayList,我想在其中临时存储该行,以便访问某些值 例如IDname(制表符)IDnumber(制表符)投票(制表符)日期 因此,我创建了名为voteSubmission的临时ArrayList,并遍历fileRead数组中的每个字符串 为什么我的拆分方法会得到错误不兼容的类型?Java中按制表符拆分,java,string,split,Java,String,Split,我将一个文件逐行扫描到ArrayList中。 然后我创建一个新的ArrayList,我想在其中临时存储该行,以便访问某些值 例如IDname(制表符)IDnumber(制表符)投票(制表符)日期 因此,我创建了名为voteSubmission的临时ArrayList,并遍历fileRead数组中的每个字符串 为什么我的拆分方法会得到错误不兼容的类型? ArrayList<String> voteSubmission = new ArrayList<String>();
ArrayList<String> voteSubmission = new ArrayList<String>();
for(String x : fileRead)
{
voteSubmission = x.split("\t");
}
ArrayList voteSubmission=new ArrayList();
for(字符串x:fileRead)
{
voteSubmission=x.split(“\t”);
}
返回一个数组,而不是数组列表
使用数组或手动将其转换为
ArrayList
。错误是:类型不匹配:无法从字符串[]转换为ArrayList
这意味着x.split(“\t”)
提供了一个String[]
数组,但您将其分配给ArrayList
如果要将其转换为ArrayList,必须将其转换为:
new ArrayList<String>(Arrays.asList(x.split("\t")));
ArrayList<String[]> voteSubmission = new ArrayList<String[]>();
for(String x : fileRead){
voteSubmission.add((x.split("\t")));
}
ArrayList<String> voteSubmission = new ArrayList<String>();
for(String x : fileRead)
{
for(String value: x.split("\t"))
{
voteSubmission.add(value);
}
}
newarraylist(Arrays.asList(x.split(“\t”));
但是,由于您是在循环中执行此操作,因此很可能希望将所有数组存储在ArrayList中。为此,必须创建String[]类型的ArrayList,如下所示:
new ArrayList<String>(Arrays.asList(x.split("\t")));
ArrayList<String[]> voteSubmission = new ArrayList<String[]>();
for(String x : fileRead){
voteSubmission.add((x.split("\t")));
}
ArrayList<String> voteSubmission = new ArrayList<String>();
for(String x : fileRead)
{
for(String value: x.split("\t"))
{
voteSubmission.add(value);
}
}
ArrayList voteSubmission=new ArrayList();
for(字符串x:fileRead){
添加((x.split(“\t”));
}
x.split(“\t”)代码>此函数将返回数组而不是数组列表
该函数声明:
围绕给定正则表达式的匹配项拆分此字符串
此方法的工作方式类似于通过调用具有
给定的表达式和零的极限参数。尾随空
因此,结果数组中不包括字符串
返回:
ArrayList<String> voteSubmission = new ArrayList<String>();
for(String x : fileRead)
{
voteSubmission = x.split("\t");
}
通过围绕匹配项拆分此字符串计算的字符串数组
给定正则表达式的
您可以尝试如下方式更改代码:
new ArrayList<String>(Arrays.asList(x.split("\t")));
ArrayList<String[]> voteSubmission = new ArrayList<String[]>();
for(String x : fileRead){
voteSubmission.add((x.split("\t")));
}
ArrayList<String> voteSubmission = new ArrayList<String>();
for(String x : fileRead)
{
for(String value: x.split("\t"))
{
voteSubmission.add(value);
}
}
ArrayList voteSubmission=new ArrayList();
for(字符串x:fileRead)
{
用于(字符串值:x.split(“\t”))
{
增值;
}
}
split()的输出类型为string[]array,您正试图分配给ArrayList类型,该类型不兼容
将代码更改为
ArrayList<String> voteSubmission = new ArrayList<String>();
for(String x : fileRead)
{
String arr[] = x.split("\t");
if(arr != null && arr.length > 0)
{
for(String value: arr)
{
voteSubmission.add(value);
}
}
}
ArrayList voteSubmission=new ArrayList();
for(字符串x:fileRead)
{
字符串arr[]=x.split(“\t”);
如果(arr!=null&&arr.length>0)
{
for(字符串值:arr)
{
增值;
}
}
}