题解 HJ17| #坐标移动#
坐标移动
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int x=0; int y=0; String awsd; awsd=in.next(); String [] str = awsd.split (";");//以分号为分割点 for(int i=0;i<str.length;i++){ if(str[i].length()==3){ if(awsd.charAt(1)<='9'&&str[i].charAt(1)>='0'&&str[i].charAt(2)<='9'&&str[i].charAt(2)>='0'){ if(str[i].charAt(0)=='A')x=x-(str[i].charAt(1)-'0')*10-(str[i].charAt(2)-'0'); if(str[i].charAt(0)=='W')y=y+(str[i].charAt(1)-'0')*10+(str[i].charAt(2)-'0'); if(str[i].charAt(0)=='S')y=y-(str[i].charAt(1)-'0')*10-(str[i].charAt(2)-'0'); if(str[i].charAt(0)=='D')x=x+(str[i].charAt(1)-'0')*10+(str[i].charAt(2)-'0'); } }else if(str[i].length()==2){ if(str[i].charAt(1)<='9'&&str[i].charAt(1)>='0'){ if(str[i].charAt(0)=='A')x=x-(str[i].charAt(1)-'0'); if(str[i].charAt(0)=='W')y=y+(str[i].charAt(1)-'0'); if(str[i].charAt(0)=='S')y=y-(str[i].charAt(1)-'0'); if(str[i].charAt(0)=='D')x=x+(str[i].charAt(1)-'0'); } } } System.out.print(x); System.out.print(','); System.out.print(y); } }
先定义一个字符串接收输入,之后用字符串数组,用string自带的split分割,以:分割到数组中
定义一个x一个y作为坐标
int x=0;
int y=0;
String awsd;
awsd=in.next();
String [] str = awsd.split (";");//以分号为分割点
要求是只要第一个字母为aswd,后面一个或俩个为数字,那么只需要判定长度为3/2?然后判定charAt(1)charAt(2)是否为数字
for(int i=0;i<str.length;i++){
if(str[i].length()==3){
if(awsd.charAt(1)<='9'&&str[i].charAt(1)>='0'&&str[i].charAt(2)<='9'&&str[i].charAt(2)>='0'){
最后判定第一个charAt(0)是哪个字母即可,其他无效数据都过不了if判定
if(str[i].charAt(0)=='A')x=x-(str[i].charAt(1)-'0')*10-(str[i].charAt(2)-'0');
if(str[i].charAt(0)=='W')y=y+(str[i].charAt(1)-'0')*10+(str[i].charAt(2)-'0');
if(str[i].charAt(0)=='S')y=y-(str[i].charAt(1)-'0')*10-(str[i].charAt(2)-'0');
if(str[i].charAt(0)=='D')x=x+(str[i].charAt(1)-'0')*10+(str[i].charAt(2)-'0');
}
}else if(str[i].length()==2){
if(str[i].charAt(1)<='9'&&str[i].charAt(1)>='0'){
if(str[i].charAt(0)=='A')x=x-(str[i].charAt(1)-'0');
if(str[i].charAt(0)=='W')y=y+(str[i].charAt(1)-'0');
if(str[i].charAt(0)=='S')y=y-(str[i].charAt(1)-'0');
if(str[i].charAt(0)=='D')x=x+(str[i].charAt(1)-'0');
}
}
}
最后用scanner的输出输出出来x,y
System.out.print(x);
System.out.print(',');
System.out.print(y);
}
}
#华为od题库#随便发发而已