逆序数と逆順文字列

10467 ワード

逆順の3桁
プログラムは1つの正3桁を読み込み、ビット順の数字を出力します。注意:入力された数字に最後の0が含まれている場合、出力には先頭の0が含まれてはいけません。例えば700を入力して、出力は7であるべきです。
このテーマはもちろん簡単です。最初は直接に残りを取って直接計算します。そしてまだ穴に会うことはありません。
import java.util.Scanner;
public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int a,b,c,d,e ;
        a = sc.nextInt();
        b = a/100;//  
        c = a/10 - 10*b;//  
        d = a%10;//  
        e=d*100+c*10+b;
        System.out.println(e);
    }
}
もちろんこのようにすれば意味が全くなくなります。そこで、どのようにn桁に伸ばすべきかを考えて、次のコードを書きました。
import java.util.Scanner;

public class Main {
    public static void main(String args[]){
        Scanner in = new Scanner(System.in);
        String st = in.nextLine();
        for(int i=st.length();i>0;i--){
            System.out.print(st.substring(i-1,i));
        }
    }
}
そして、エラーを発見したばかりです。チェックしたら、700だったら、直接に007になります。これは実際に文字列の逆順です。文字列の逆順はこれをそのまま使うことができます。
コードを修正します。n桁の逆順になります。これはStering類のlength(上にも使われていますが)の方法を使います。最後にいくつかの0があると判断すればいいです。そしてコードを少し修正します。
import java.util.Scanner;

public class Main {
    public static void main(String args[]){

        Scanner in = new Scanner(System.in);
        String st = in.nextLine();
        if (Integer.valueOf(st)==0){
            System.out.println("0");
        }else {
            int i = st.length();
            while (Integer.valueOf(st.substring(i-1,i))==0){
                i--;
            }
            for(;i>0;i--){
                System.out.print(st.substring(i-1,i));
            }
        }
    }
}
そしてOkは辛い
私のブログを見てください。初心者は主にプログラミング言語のエッセイや数学の内容を話すべきです。何かいい方法があれば、教えてください。