我有这个方法接收到一个末尾包含整数的字符串,我试图以这种方式提取字符和整数:
public void findCardPosition(String cardLocation,ImageView cardImage){
String cardName = null;
String cardType = cardLocation.replaceAll("[^a-z]","");
String cardPosition = cardLocation.replaceAll("[^0-9]", "");
int position = Integer.parseInt(cardPosition)-1;
if(cardType=="territory"){
cardName=GameBoard.getTerritoryTower().placeTowerTerritories().get(position).getName();
}
if(cardLocation=="territory1"){
cardName=GameBoard.getTerritoryTower().placeTowerTerritories().get(position).getName();
}
if(cardName!=null){
this.findCardImage(cardName,cardImage);
}
}
理论上,两个IF都应该工作,但第一个不起作用,这意味着当我将String cardType = cardLocation.replaceAll("[^a-z]","");
应用于字符串"territory1"
时,它不会返回字符串"territory".
字符串{ {1}}有效,所以我不明白为什么字符串cardPosition
没有。