Java 关于arrayList
我使用了scanner而不是字符串标记器,下面是一段代码Java 关于arrayList,java,Java,我使用了scanner而不是字符串标记器,下面是一段代码 Scanner scanner = new Scanner("Home,1;Cell,2;Work,3"); scanner.useDelimiter(";"); while (scanner.hasNext()) { // System.out.println(scanner.next()); String phoneDtls = scanner.next(); // System.out.println(p
Scanner scanner = new Scanner("Home,1;Cell,2;Work,3");
scanner.useDelimiter(";");
while (scanner.hasNext()) {
// System.out.println(scanner.next());
String phoneDtls = scanner.next();
// System.out.println(phoneDtls);
ArrayList<String> phoneTypeList = new ArrayList<String>();
if(phoneDtls.indexOf(',')!=-1) {
String value = phoneDtls.substring(0, phoneDtls.indexOf(','));
phoneTypeList.add(value);
}
Iterator itr=phoneTypeList.iterator();
while(itr.hasNext())
System.out.println(itr.next());
}
你能告诉我其他的选择吗。。!!实现同样的目标。。。!!提前多谢了 能否尝试根据“,”STIRNG_值进行拆分。拆分(“,”);将返回一个以分隔的字符串的数组,这可能会有所帮助。您是否可以尝试基于“,”STIRNG_VALUE.split(“,”)进行拆分;将返回一个以分隔的字符串数组,如果我理解正确,这可能会有所帮助。问题是您想要维护一个电话类型列表。像这样:[“家”、“牢房”、“工作”] 我建议你们将它保存在一个有意义的属性文件/配置文件/数据库中,并在应用程序启动时将其加载到内存中 如果输入无法更改,那么对于算法,我想不出更好的算法。看起来不错 如果有意义的话,可以使用string的split函数。 第一次使用“在上拆分”
然后在“,”上拆分,如果我理解正确的话。问题是您想要维护一个电话类型列表。像这样:[“家”、“牢房”、“工作”] 我建议你们将它保存在一个有意义的属性文件/配置文件/数据库中,并在应用程序启动时将其加载到内存中 如果输入无法更改,那么对于算法,我想不出更好的算法。看起来不错 如果有意义的话,可以使用string的split函数。 第一次使用“在上拆分” 然后在“,”上拆分 试试这个,我也做了一些改变以提高性能。希望你能比较和理解这些变化
ArrayList<String> phoneTypeList = new ArrayList<String>();
Scanner scanner = new Scanner("Home,1;Cell,2;Work,3");
scanner.useDelimiter(";");
String phoneDtls = null;
String value = null;
while (scanner.hasNext()) {
phoneDtls = scanner.next();
if (phoneDtls.indexOf(',') != -1) {
value = phoneDtls.split(",")[0];
phoneTypeList.add(value);
}
}
Iterator itr = phoneTypeList.iterator();
while (itr.hasNext())
System.out.println(itr.next());
ArrayList phoneTypeList=新建ArrayList();
扫描仪=新扫描仪(“家庭,1;单元,2;工作,3”);
scanner.useDelimiter(“;”);
字符串phoneDtls=null;
字符串值=null;
while(scanner.hasNext()){
phoneDtls=scanner.next();
if(phoneDtls.indexOf(',')!=-1){
value=phoneDtls.split(“,”[0];
电话类型列表。添加(值);
}
}
迭代器itr=phoneTypeList.Iterator();
while(itr.hasNext())
System.out.println(itr.next());
我已经执行了n得到结果,检查屏幕截图
试试这个,我也做了一些改变以提高性能。希望你能比较和理解这些变化
ArrayList<String> phoneTypeList = new ArrayList<String>();
Scanner scanner = new Scanner("Home,1;Cell,2;Work,3");
scanner.useDelimiter(";");
String phoneDtls = null;
String value = null;
while (scanner.hasNext()) {
phoneDtls = scanner.next();
if (phoneDtls.indexOf(',') != -1) {
value = phoneDtls.split(",")[0];
phoneTypeList.add(value);
}
}
Iterator itr = phoneTypeList.iterator();
while (itr.hasNext())
System.out.println(itr.next());
ArrayList phoneTypeList=新建ArrayList();
扫描仪=新扫描仪(“家庭,1;单元,2;工作,3”);
scanner.useDelimiter(“;”);
字符串phoneDtls=null;
字符串值=null;
while(scanner.hasNext()){
phoneDtls=scanner.next();
if(phoneDtls.indexOf(',')!=-1){
value=phoneDtls.split(“,”[0];
电话类型列表。添加(值);
}
}
迭代器itr=phoneTypeList.Iterator();
while(itr.hasNext())
System.out.println(itr.next());
我已经执行了n得到结果,检查屏幕截图
既然您询问是否有其他方法可以执行此操作,那么这里有一个替代方法:您可以直接拆分字符串,并使用更少的语句代码执行此操作:
String input = "Home,1;Cell,2;Work,3";
String[] splitInput = input.split(";");
for (String s : splitInput ) {
System.out.println(s.split(",")[0]);
}
无需使用
ArrayList
,因为您也可以迭代数组。好吧,既然您询问是否有其他方法可以执行此操作,那么这里有一个替代方法:您可以直接拆分字符串,并使用语句使用较少的代码执行此操作:
String input = "Home,1;Cell,2;Work,3";
String[] splitInput = input.split(";");
for (String s : splitInput ) {
System.out.println(s.split(",")[0]);
}
无需使用
ArrayList
,因为你也可以迭代数组。只要你在这里只是为了让其他人修复你的代码,也许你可以开始投票/接受答案。@PaulBellora这个家伙只有4个代表,他不能投票,当我第一次加入这个网站时,我不知道接受是件事。“我们不要吝啬了。”卢卡斯——看看过去12个小时里发生的事情。尽管如此,这是一个如此成功地保持伟大的人,只是说。只要你在这里只是为了让其他人修改你的代码,也许你可以开始投票/接受答案。@PaulBellora这个家伙只有4个代表,他不能投票,当我第一次加入这个网站时,我不知道接受是一件事。“我们不要吝啬了。”卢卡斯——看看过去12个小时里发生的事情。尽管如此,这是一个如此成功地保持良好状态的方法。哦,我认为输入是动态的n您正在使用Scanner从某处读取值。Scanner
如果您有一个InputStream
并且您需要进行一些正则表达式组匹配,则非常有用。但是,如果所有操作都是字符串操作(例如拆分字符串),那么使用字符串操作函数(例如string.split(…)会更容易
在这种情况下。哦,我认为输入是动态的n您正在使用Scanner从某处读取值。Scanner
在您有InputStream
并且需要进行正则表达式组匹配时非常有用。但是,如果所有的操作都是字符串操作(例如拆分字符串),那么在本例中,使用字符串操作函数(例如string.split(…)
)会更容易。嗨,Rajkumar,thnanks很多。。!!很好的解释,你能解释一下这句话吗。。。value=phoneDtls.split(“,”[0],据我所知,它是在(“,”)的基础上进一步分裂的,但是[0]在这里做的是。。!!谢谢。。!!split方法返回一个数组,在这里它将包含2个元素。“[0]”将采用第一个元素。。如果你需要更多的解释,请告诉我。嗨,Rajkumar,太多了。。!!很好的解释,你能解释一下这句话吗。。。value=phoneDtls.split(“,”[0],据我所知,它是在(“,”)的基础上进一步分裂的,但是[0]在这里做的是。。!!谢谢。。!!split方法返回一个数组,在这里它将包含2个元素。“[0]”将采用第一个元素。。如果你需要更多的解释,请告诉我。