"buy x share(s) at $y each"
or 
"sell x share(s) at $y each"

解决方案 »

  1.   

    不知道这两句话放在什么上下文中去理解,字面上的意思就是:买X股,每股Y美元;卖X股,每股Y美元。但是,不知道上下文,没法写程序啊...
      

  2.   

    没打上。。
    用户输入buy x share(s) at $y each或者sell x share(s) at $y each其中的一句话。
    假如输入了buy x share(s) at $y each,就输出一个
    买了x个,每个y元。
    假如输入sell x share(s) at $y each,就输出一句
    卖了X个,每个y元。
      

  3.   

    这里的X和Y是定死的 还是可变的 比如:sell 1000 share(s) at $9 each
      

  4.   

    那我觉得你这么做不是很简洁吧 你看这样行吗? 一开始就判断是Sell还是Buy,然后继续输入一共买或卖了多少股,最后输入单股的价格  这样就用去做该死的字符串匹配了 也不用强制用户按照指定格式输入字符串
      

  5.   

    没办法啊,我开始是那么做的,老师非要让我用我一楼发的那种格式写入。我开始就先问sell和buy,确定一个之后然后分别数量和价格。。不让。。哎
      

  6.   

    用正则啊怎么我回的没有呢。。
    buy (\d+) share(?:s?) at $(\d+) each
    然后用反向引用啊
    等我写程序给你
      

  7.   

    谢谢#9,还要把x和y按照用户输入的数字读出来,x和Y代表数字。
      

  8.   

    import java.util.*;public class Output {
    public Output(){
    Scanner scanner = new Scanner(System.in);

    String str = null;

    while(!(str = scanner.nextLine()).equals("q")){
    if(str.matches("buy\\s\\d+\\s(share|shares)\\sat\\s\\$\\d+\\seach")){
    System.out.print("买了"+ getTotal(str) +",每个"+ getPrice(str) +"美元。");
    }
    else if(str.matches("sell\\s\\d+\\s(share|shares)\\sat\\s\\$\\d+\\seach")){
    System.out.print("卖了"+ getTotal(str) +",每个"+ getPrice(str) +"美元。");
    }
    else{
    System.out.println("Wrong Format!Pleass enter again!");
    } str = scanner.nextLine();
    }
    }

    public static String getTotal(String str){
    int start = str.indexOf(" ");
    int end = str.indexOf(" ", start+1); return str.substring(start, end);
    }

    public static String getPrice(String str){
    int start = str.indexOf("$");
    int end = str.indexOf(" ", start+1); return str.substring(start+1, end);
    }

    public static void main(String args[]){
    new Output();
    }
    }
    楼主完善细节吧,基本功能是这样的。
      

  9.   

    System.out.println("买了"+ getTotal(str) +",每个"+ getPrice(str) +"美元。");然后如果可以确保字符串格式一定是输入正确的话  用startWith判断更简单 
      

  10.   

    你们老师要考你字符串处理吧。
    把字符串用split处理成字符串数组,下面随便搞咯
      

  11.   


    import java.io.IOException;
    import java.util.Scanner;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test {
        public static void main(String[] args) throws IOException {
           String reg="buy\\s(\\d+)\\sshare(?:s?)\\sat\\s(\\d+)\\seach";
           String anotherreg="sell\\s(\\d+)\\sshare(?:s?)\\sat\\s(\\d+)\\seach";
           Pattern patternforbuy=Pattern.compile(reg);
           Pattern patternforsell=Pattern.compile(anotherreg);
           Scanner input=new Scanner(System.in);
           String in;
           while(true)
           {
            System.out.print("please enter command:");
            in=input.nextLine();
            Matcher m=patternforbuy.matcher(in);
            Matcher mtwo=patternforsell.matcher(in);
            if(m.matches())
            System.out.println("买了"+m.group(1)+"个,每个"+m.group(2));
            else if(mtwo.matches()) 
            System.out.println("卖了"+mtwo.group(1)+"个,每个"+mtwo.group(2));
            else 
            {
            
            if(in.equalsIgnoreCase("exit"))
            {
            System.out.println("exit safely");
            return;
            }
            System.out.println("no Match");
            }     
           }
        }
    }
      

  12.   

    Start with做了。。还是谢谢两位