座標計算ツールを開発します。Aは左に移動することを意味し、Dは右に移動することを意味し、Wは上に移動することを意味し、Sは下に移動することを意味します。ポイント(0,0)から移動を開始します。

タイトルの説明

座標計算ツールを開発します。Aは左に移動することを意味し、Dは右に移動することを意味し、Wは上に移動することを意味し、Sは下に移動することを意味します。(0,0)ポイントから移動を開始し、入力文字列からいくつかの座標を読み取り、最終的な入力結果を出力ファイルに出力します。

入る:

法定座標は、A(またはDまたはWまたはS)+数値(2桁以内)です。

座標は;で区切られます。

不正な座標点は破棄する必要があります。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)

複数の入力と出力のセットを処理してください

入力の説明:
1行の文字列

出力の説明:
コンマで区切られた最終座標

問題解決のアイデア:
最も重要なことは文字列のセグメンテーションです。セグメンテーションが完了すると、標準に従って合法かどうかが判断されます。合法である場合は調整処理に進み、そうでない場合は次の判断に進みます。

コード表示:

import java.util.Scanner;
public class Main{
    
    
    public static void main(String[] args){
    
    
        Scanner sc=new Scanner(System.in);
        int i=0;
        int j=0;
        String str=sc.nextLine();
        String[] st=str.split(";");
        for(int k=0;k<st.length;k++){
    
    
            boolean flag=true;
            int step=0;
            if(st[k].length()<=1){
    
    
                continue;
            }
            for(int x=1;x<st[k].length();x++){
    
    
                if(!(st[k].charAt(x)<='9'&&st[k].charAt(x)>='0')){
    
    
                    flag=false;
                    break;//不符合规范的舍弃

                }

            }
            if(flag){
    
    
                String s=st[k].substring(1);
                step=Integer.parseInt(s,10);
            }else{
    
    
                continue;
            }

            char ch=st[k].charAt(0);
            switch(ch){
    
    
                case 'A':
                    i-=step;
                    break;
                case 'D':
                    i+=step;
                    break;
                case 'W':
                    j+=step;
                    break;
                case 'S':
                    j-=step;
                    break;
            }

        }System.out.println(i+","+j);
    }
}



おすすめ

転載: blog.csdn.net/weixin_43815275/article/details/114744033