题解 | #坐标移动#

坐标移动

http://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29

思路:
1.把输入字符串以分号作为分割标志分割,用数组接收。
2.首先要判断字符串是否合规。
3.合规的话,把字符串分离成两部分,一部分是方向字符WASD,另一部分是距离。
4.使用switch(){case}语句进行操作。
5.输出

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int x=0,y=0;
        // 注意 hasNext 和 hasNextLine 的区别
        String[] input=in.nextLine().split(";");
        for(int i=0;i<input.length;i++){
            if(input[i]!=null && input[i].length()!=0 && input[i]!=" " && vertify(input[i])){
                char pre=input[i].charAt(0);
                int dis=Integer.parseInt(input[i].substring(1));
                switch(pre){
                    case 'A':
                        x-=dis;
                        break;
                    case 'W':
                        y+=dis;
                        break;
                    case 'S':
                        y-=dis;
                        break;
                    case 'D':
                        x+=dis;
                        break;
                }
            }
        }
        System.out.print(x+","+y);
    }
    //判断字符是否合规
    public static boolean vertify(String str){
        char pre=str.charAt(0);
        if(pre!='A' && pre!='W' && pre!='S' && pre!='D'){
            return false;
        }
        for(int i=1;i<str.length();i++){
            if(str.charAt(i)>'9' || str.charAt(i)<'0'){
                return false;
            }
        }
        return true;
    }
}
全部评论

相关推荐

点赞 评论 收藏
分享
07-23 14:04
东北大学 C++
既然这样,为什么不点击就送呢
牛马88号:因为你合适。但有很多笔试就挂了、通过了再排序的
点赞 评论 收藏
分享
点赞 评论 收藏
分享
07-10 14:08
已编辑
江西农业大学 Java
拒绝无效加班的小学生...:期望3k吗?java这辈子有了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-24 13:39
在记录秋招的大魔王很...:别被忽悠了,我做了多年销售。我可以告诉你,这就是忽悠你的,销售一定要看底薪也要看提成两者不可缺一。提成是有业绩的时候才拿的到的,谁能保证一直有单状态都好。销售有时候很讲究运气的。底薪是你这个人这个岗位日常工作体现的价值。别小看底薪,你看那些跳槽去做经理主管的,底薪底一些,人家愿意去吗?所以那些说销售靠提成的纯属忽悠,除非他们的业务很容易成单。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务