在条件上用新字符串替换字符串

时间:2015-07-05 09:56:51

标签: java string

我正在创建一个程序,用户输入名称,P,S或T,以及轮数。然后它将检查它们是否相等(根据选择的条件获胜?这是一个摇滚,纸张,剪刀游戏)。然后,如果它们相同,我希望它在iChoice中打印iComputerChoiceJOPtionPane的替换版本。 (因为在这种情况下,它只会打印P,S或T)。这些是替代品:

“P”=“纸”//“S”=“剪刀”//“T”=“石头”

以下是代码块:

if(iComputerchoice.equals(iChoice))
        {
            JOptionPane.showMessageDialog (null, "Computer: " +iComputerchoice + "\n" + "" +iName + ": " + "" +iChoice + "\nIt's a tie!", "Result", JOptionPane.PLAIN_MESSAGE);
        }

实施例: iComputerchoice = P. iChoice = P

计算机=纸张//你的名字=纸张//这是一个平局!

我知道这样做的方法,但它有点长。我想知道是否有更短的方法来做到这一点。谢谢!

2 个答案:

答案 0 :(得分:1)

在很多方面。例如,编写一个将为您进行转换的方法:

public class TestLocation extends FragmentActivity implements
        LocationListeners {

     private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 80;
     private static final long MIN_TIME_BW_UPDATES = 8000 * 60 * 1;


@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
     isNetworkEnabled = locationManager
                        .isProviderEnabled(LocationManager.NETWORK_PROVIDER);

    if (isNetworkEnabled) {
                            locationManager.requestLocationUpdates(
                                    LocationManager.NETWORK_PROVIDER,
                                    MIN_TIME_BW_UPDATES,
                                    MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                            if (locationManager != null) {
                                location = locationManager
                                        .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                                if (location != null) {
                                    latitude = location.getLatitude();
                                    longitude = location.getLongitude();
                                }
                            }
                    }
}

然后在更新JOptionPane中的值时使用convertChoice(iChoice)而不是iChoice。

答案 1 :(得分:0)

嗯,我不知道这是一个好/坏的方式,但只是好奇所以尝试了这一点,你可以使用HashMap来编写你的“键”并在需要时显示它的值。

Map<String,String> map=new HashMap();
  map.put("p","paper");
  map.put("t","Stone");
  map.put("s","Scissor");

演示简短示例:

 Scanner scan=new Scanner(System.in);
   System.out.println("T-Stone..P-paper..S-Scissors..enter");
   String choice=scan.nextLine().toLowerCase().trim();

   Map<String,String> map=new HashMap();
   map.put("p","paper");
   map.put("t","Stone");
   map.put("s","Scissor");


   //s b p-> scissor beats paper   
     final   String test="s b p , t b s , p b t";
     String vals[]={"p","s","t"};

     String ichoice=vals[new Random().nextInt(3)+0];//((max - min) + 1) + min

     if(ichoice.equalsIgnoreCase(choice)){

         JOptionPane.showMessageDialog(null,"  Tie !!--"+map.get(ichoice));
         System.exit(1);
    }

      String match=ichoice+" b "+choice;

     if(test.contains(match))  
           JOptionPane.showMessageDialog(null,"  CPU Won!!--!"+map.get(ichoice));
     else
           JOptionPane.showMessageDialog(null,"  YOU Won!!--"+map.get(ichoice));