【发布时间】:2012-07-11 08:59:03
【问题描述】:
我正在编写一个 Java 程序,在该程序中我根据一个字符串检查一个列表,然后对其进行处理。在 fortran 中,我会按照
的方式写一些东西where(list(:)==stringToCheck){
...
statements
...
}
相反,我对一堆 for 循环感到头疼,if 语句和中断到处都是。不,也许我可以稍微整理一下代码,但感觉它仍然比 fortran 效率低得多。
编辑,这是我使用的代码:
for(int idx=0;idx<player.get_charactersOwned().size();idx++)
{
if(player.get_charactersOwned().get(idx).get_characterName().equals(charName))
{
/* Add character to the game
* Add game to the character*/
System.out.println("Character "+charName+" Found ");
gameToMake.addCharacters(player.get_charactersOwned().get(idx));
player.get_charactersOwned().get(idx).addGame(gameToMake);
break;
}else
{
System.err.println("Character "+ charName +" not found");
System.out.println("Shall I add that Character? y/n ");
choice = scanner.nextLine();
if(choice.equalsIgnoreCase("y"))
{
charName = scanner.nextLine();
Character character = new Character(charName);
characterTempList.add(character);
player.addCharacter(characterTempList);
gameToMake.addCharacters(player.get_charactersOwned().get(idx));
player.get_charactersOwned().get(idx).addGame(gameToMake);
break;
}else{break;}
}
}
尽管修复这段代码很诱人,但我宁愿使用变通方法。
在不使用外部库的情况下,是否有与此等效的 Java?
【问题讨论】:
-
如果有任何选择,您应该尝试 Scala,它也运行在 JVM 上并具有非常强大的集合 API,具有您所要求的功能。
-
"Checking list against a string"的意思是你想知道列表中是否包含字符串?
-
@PetteriHietavirta 是的,基本上。
-
很可能你有你的理由,但将字符存储在字符串中并使用 String.indexOf() 检查是否有匹配的字符不是更简单吗?
标签: java fortran where equivalent