题解 | #坐标移动#

坐标移动

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

import java.util.Scanner; public class Hj17 { /*  开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,  并将最终输入结果输出到输出文件里面。输入:  合法坐标为A(或者D或者W或者S) + 数字(两位以内)  坐标之间以;分隔。  非法坐标点需要进行丢弃。如AA10;  A1A;  $%$;  YAD; 等。  下面是一个简单的例子 如:A10;S20;W10;D30;X;A1A;B10A11;;A10;  处理过程:  起点(0,0+ A10 =-10,0+ S20 =(-10,-20)+ W10 =(-10,-10) + D30 =(20,-10)+ x = 无效 + A1A = 无效 + B10A11 = 无效 + 一个空 不影响  + A10  =  (10,-10)  结果 (10 -10  */  public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);    String str = scan.nextLine();    String[] s = str.split(";");    /*for(int i=0;i<s.length;i++){  System.out.println(s[i]);  }  */  //对非法数据进行处理    for(int i=0;i<s.length;i++){  byte[] bytes = s[i].getBytes();//还得对空串特殊处理    if(bytes.length==0){  continue;    }  if(bytes[0]!=65&&bytes[0]!=68&&bytes[0]!=83&&bytes[0]!=87){//字符串转成byte数组的时候会字母会根据ACSII码来转值,65为A,68为D,83为S,87为W;
                s[i] = "";    }else{  for(int j=1;j<bytes.length;j++){ if(bytes[j]<48||bytes[j]>57){//48和57是0和9的ACSII码
                            s[i] = "";    }
                }
            }
        } /*for (String s1:s  ) {  System.out.println(s1);  }   */
   //坐标移动,准备xy,对s数组里面的剩余字符串进行截取,截取的两个串为字母和数字,字母串决定加减,数字串决定数据    int x = 0;  int y = 0;  for(int i=0;i<s.length;i++){  if(s[i].equals("")){  continue; }else{
                    String str1 = s[i].substring(0,1);    String str2 = s[i].substring(1,s[i].length());  int number = Integer.parseInt(str2);  if(str1.equals("A")){
                        x-=number;    } else if (str1.equals("D")) {
                        x+=number;    } else if (str1.equals("W")) {
                        y+=number;    } else {
                        y-=number;    }
            }  if(i==s.length-1){
                System.out.println(x+","+y);    }

        }
    }
}

全部评论

相关推荐

10-29 19:45
吉林大学 Java
从零开始数:自我评价没有必要写,但是看起来你应该是学了csdiy的一些课程,可以在专业技能里面写上自己比较熟悉操作系统和计网,但如果你是找Java的话,把第一个项目换了吧,现在看起来有点四不像。 无论是黑马点评或者说做个轮子项目,刷题和八股也搞起来吧,而且也没必要等到寒假,最近就可以开始找,找到就偷偷实习呗,别被逮到就行了。
点赞 评论 收藏
分享
09-15 15:53
Java
Elastic90:我看到的是东软的人在耐心回应,而那位实习生跟在发疯似的
投递东软集团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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