题解 | #坐标移动#

坐标移动

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

Java解法

用了String类的很多方法:

's.split(",")'

's.subString(a, b)'

's.charAt(index)'

还有其他相关方法:

'Character.isDigit(char_c)' 判断一个字符是不是数字

'Integer.valueOf(string_s)' 将一个字符串变成整数

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int x=0, y=0;
		String s = in.next();
		String[] operations = s.split(";");
		for(String op:operations) {
			if(isRight(op)==true) {
				switch(op.substring(0,1)) {
				case "A":
					if(op.length()==2) {
						x -= Integer.valueOf(op.substring(1,2));
					}
					if(op.length()==3) {
						x -= Integer.valueOf(op.substring(1,3));
					}
					break;
				case "D":
					if(op.length()==2) {
						x += Integer.valueOf(op.substring(1,2));
					}
					if(op.length()==3) {
						x += Integer.valueOf(op.substring(1,3));
					}
					break;				
				case "W":
					if(op.length()==2) {
						y += Integer.valueOf(op.substring(1,2));
					}
					if(op.length()==3) {
						y += Integer.valueOf(op.substring(1,3));
					}
					break;
				case "S":
					if(op.length()==2) {
						y -= Integer.valueOf(op.substring(1,2));
					}
					if(op.length()==3) {
						y -= Integer.valueOf(op.substring(1,3));
					}
					break;
				}
				
			}
			
		}
		System.out.println(x+","+y);
		in.close();
	}
	
	public static boolean isRight(String s) {
		if(s.length()>3 || s.length()<=1) {
			return false;
		}else if(!Character.isDigit(s.charAt(1))) {
			return false;
		}else if(s.length()==3 && !Character.isDigit(s.charAt(2))) {
			return false;
		}
		return true;
	}
}
全部评论

相关推荐

MScoding:你这个实习有一个是当辅导老师,这个和找技术岗没有关系吧?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务