quang cao hosting

Xử Lý Chuỗi Nhập Trên Máy Tính Android

Xem: 1580    Tải: 29   Thảo luận: 0   Mục: Android   Lĩnh vực: Khác

0 điểm   ( 7 đánh giá ) File đã được kiểm thử
Miễn Phí [megacode]xu-ly-chuoi-nhap-tren-may-tinh.rar (1.26 MB)
Tải miễn phí

Bạn cần phải Đăng nhập để tải file [megacode]xu-ly-chuoi-nhap-tren-may-tinh.rar
Nếu bạn chưa có tài khoản thì Đăng ký miễn phí tại đây

Báo lỗi download   Báo vi phạm bản quyền

Hôm nay sẽ hướng dẫn làm bài tập Xử Lý Chuỗi Nhập Trên Máy Tính Android

Hôm nay sẽ hướng dẫn làm bài tập Xử Lý Chuỗi Nhập Trên Máy Tính Android

Tạo giao diện như sau: 

khởi tạo:

EditText edt_input;
String output="";

Viết hàm khi ấn vào các button như 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ., +, -, *, /  thì gán vào chuỗi output đã khởi tạo bên trên. và khi ấn vào button delete thì xóa kí tự cuối cùng, khi ấn vào button = thì xử lý chuỗi nhập và đưa kết quả vào edt_input xuất ra màn hình. Code như sau:

public void btnClick(View v)
	{
		edt_input=(EditText)findViewById(R.id.edt_input);
		output=edt_input.getText().toString();
		switch (v.getId()) {
		case R.id.btnNumber0:
			output+="0";
			edt_input.setText(output);
			break;
		case R.id.btnNumber1:
			output+="1";
			edt_input.setText(output);
			break;
		case R.id.btnNumber2:
			output+="2";
			edt_input.setText(output);
			break;
		case R.id.btnNumber3:
			output+="3";
			edt_input.setText(output);
			break;
		case R.id.btnNumber4:
			output+="4";
			edt_input.setText(output);
			break;
		case R.id.btnNumber5:
			output+="5";
			edt_input.setText(output);
			break;
		case R.id.btnNumber6:
			output+="6";
			edt_input.setText(output);
			break;
		case R.id.btnNumber7:
			output+="7";
			edt_input.setText(output);
			break;
		case R.id.btnNumber8:
			output+="8";
			edt_input.setText(output);
			break;
		case R.id.btnNumber9:
			output+="9";
			edt_input.setText(output);
			break;
			//---------------
		case R.id.btnCong:
			output+="+";
			edt_input.setText(output);
			break;	
		case R.id.btnTru:
			output+="-";
			edt_input.setText(output);
			break;	
		case R.id.btnNhan:
			output+="x";
			edt_input.setText(output);
			break;	
		case R.id.btnChia:
			output+="/";
			edt_input.setText(output);
			break;	
			//---------------
		case R.id.btnDelete:
			output=output.substring(0, output.length()-1);
			edt_input.setText(output);
			break;	
		case R.id.btnmongoac:
			output+="(";
			break;	
			//----------------
		case R.id.btndongngoac:
			output+=")";
			break;
		case R.id.btnCham:
			output+=".";
			edt_input.setText(output);
			break;	
		case R.id.btnBang:
		{
			XuLyNhanChia(output);
			DungNhanChia = false;
			DungCongTru = false;
			break;
		}
		default:
			break;
		}
	}

Tiếp theo ta xử lý chuỗi nhập:

                   + Xử lý nhân chia trước:

Boolean DungNhanChia = false;
    void XuLyNhanChia(String b)
    {
        String kq = "";
        char[] a = b.toCharArray();
        for (int i = 0; i < a.length; i++)
        {
            if (a[i] == 'x')
            {
                String s1 = "";
                String s2 = "";
                int vt1 = 0, vt2 = 0;
                String chuoiconlai = "";
                for (int j = i - 1; j >= 0; j--)
                {
                    if (a[j] != 'x' && a[j] != '/' && a[j] != '+' && a[j] != '-')
                    {
                        s1 += a[j];
                    }
                    else if (a[j] == 'x' || a[j] == '/' || a[j] == '+' || a[j] == '-')
                    {
                        vt1 = j + 1;
                        break;
                    }

                }
                char[] dao = s1.toCharArray();
                s1 = "";
                for (int h = dao.length - 1; h >= 0; h--)
                {
                    s1 += dao[h];
                }
                for (int k = i + 1; k < a.length; k++)
                {
                    if (a[k] != 'x' && a[k] != '/' && a[k] != '+' && a[k] != '-')
                    {
                        s2 += a[k];
                    }
                    else if (a[k] == 'x' || a[k] == '/' || a[k] == '+' || a[k] == '-')
                    {
                        vt2 = k - 1;

                        break;
                    }
                    if (k + 1 == a.length)
                        vt2 = a.length;
                }
                if (s1 != "" && s2 != "")
                {
                	Double s11 = Double.valueOf(s1);
                	Double s22 = Double.valueOf(s2);
                	kq = (s11*s22) + "";
                }
                for (int h = 0; h < a.length; h++)
                {
                    if (h < vt1)
                        chuoiconlai += a[h];
                    if (h == vt1)
                    {
                        chuoiconlai += kq;
                    }
                    if (h > vt2)
                    {
                        chuoiconlai += a[h];
                    }

                }
                b = chuoiconlai;
                XuLyNhanChia(b);
            }

            else if (a[i] == '/')
            {
                String s1 = "";
                String s2 = "";
                int vt1 = 0, vt2 = 0;
                String chuoiconlai = "";
                for (int j = i - 1; j >= 0; j--)
                {
                    if (a[j] != 'x' && a[j] != '/' && a[j] != '+' && a[j] != '-')
                    {
                        s1 += a[j];
                    }
                    else if (a[j] == 'x' || a[j] == '/' || a[j] == '+' || a[j] == '-')
                    {
                        vt1 = j + 1;
                        break;
                    }

                }
                char[] dao = s1.toCharArray();
                s1 = "";
                for (int h = dao.length - 1; h >= 0; h--)
                {
                    s1 += dao[h];
                }
                for (int k = i + 1; k < a.length; k++)
                {
                    if (a[k] != 'x' && a[k] != '/' && a[k] != '+' && a[k] != '-')
                    {
                        s2 += a[k];
                    }
                    else if (a[k] == 'x' || a[k] == '/' || a[k] == '+' || a[k] == '-')
                    {
                        vt2 = k - 1;
                        break;
                    }
                    if (k + 1 == a.length)
                        vt2 = a.length;
                }
                if (s1 != "" && s2 != "")
                {
                	Double s11 = Double.valueOf(s1);
                	Double s22 = Double.valueOf(s2);
                	kq = (s11/s22) + "";                	
                }
                for (int h = 0; h < a.length; h++)
                {
                    if (h < vt1)
                        chuoiconlai += a[h];
                    if (h == vt1)
                    {
                        chuoiconlai += kq;
                    }
                    if (h > vt2)
                    {
                        chuoiconlai += a[h];
                    }

                }
                b = chuoiconlai;
                XuLyNhanChia(b);
            }

        }
        if (DungNhanChia == false)
        {
            XuLyCongTru(b);
            DungNhanChia = true;
        }

    }

 + Sau khi xử lý nhân chia xong, ta lấy chuỗi đã xử lý xong đưa vào hàm xử lý cộng trừ và xuất ra màn hình, code như sau:

Boolean DungCongTru = false;
    void XuLyCongTru(String b)
    {
        String kq = "";
        char[] a = b.toCharArray();
        for (int i = 0; i < a.length; i++)
        {
            if (a[0] != '-')
            {
                if (a[i] == '+')
                {
                    String s1 = "";
                    String s2 = "";
                    int vt1 = 0, vt2 = 0;
                    String chuoiconlai = "";
                    for (int j = i - 1; j >= 0; j--)
                    {
                        if (a[j] != '*' && a[j] != '/' && a[j] != '+' && a[j] != '-')
                        {
                            s1 += a[j];
                        }
                        else if (a[j] == '*' || a[j] == '/' || a[j] == '+' || a[j] == '-')
                        {
                            vt1 = 0;
                            break;
                        }

                    }
                    char[] dao = s1.toCharArray();
                    s1 = "";
                    for (int h = dao.length - 1; h >= 0; h--)
                    {
                        s1 += dao[h];
                    }
                    for (int k = i + 1; k < a.length; k++)
                    {
                        if (a[k] != '*' && a[k] != '/' && a[k] != '+' && a[k] != '-')
                        {
                            s2 += a[k];
                        }
                        else if (a[k] == '*' || a[k] == '/' || a[k] == '+' || a[k] == '-')
                        {
                            vt2 = k - 1;

                            break;
                        }
                        if (k + 1 == a.length)
                            vt2 = a.length;
                    }
                    if (s1 != "" && s2 != "")
                    {
                        kq = (Double.valueOf(s1)+Double.valueOf(s2))+"";
                    }
                    for (int h = 0; h < a.length; h++)
                    {
                        if (h < vt1)
                            chuoiconlai += a[h];
                        if (h == vt1)
                        {
                            chuoiconlai += kq;
                        }
                        if (h > vt2)
                        {
                            chuoiconlai += a[h];
                        }

                    }
                    b = chuoiconlai;
                    XuLyCongTru(b);

                }

                else if (a[i] == '-')
                {
                    String s1 = "";
                    String s2 = "";
                    int vt1 = 0, vt2 = 0;
                    String chuoiconlai = "";
                    for (int j = i - 1; j >= 0; j--)
                    {
                        if (a[j] != '*' && a[j] != '/' && a[j] != '+' && a[j] != '-')
                        {
                            s1 += a[j];
                        }
                        else if (a[j] == '*' || a[j] == '/' || a[j] == '+' || a[j] == '-')
                        {
                            vt1 = 0;
                            break;
                        }

                    }
                    char[] dao = s1.toCharArray();
                    s1 = "";
                    for (int h = dao.length - 1; h >= 0; h--)
                    {
                        s1 += dao[h];
                    }
                    for (int k = i + 1; k < a.length; k++)
                    {
                        if (a[k] != '*' && a[k] != '/' && a[k] != '+' && a[k] != '-')
                        {
                            s2 += a[k];
                        }
                        else if (a[k] == '*' || a[k] == '/' || a[k] == '+' || a[k] == '-')
                        {
                            vt2 = k - 1;
                            break;
                        }
                        if (k + 1 == a.length)
                            vt2 = a.length;
                    }
                    if (s1 != "" && s2 != "")
                    {
                        kq = (Double.valueOf(s1) - Double.valueOf(s2)) + "";
                    }
                    for (int h = 0; h < a.length; h++)
                    {
                        if (h < vt1)
                            chuoiconlai += a[h];
                        if (h == vt1)
                        {
                            chuoiconlai += kq;
                        }
                        if (h > vt2)
                        {
                            chuoiconlai += a[h];
                        }

                    }
                    b = chuoiconlai;
                    XuLyCongTru(b);
                }
            }
            if(a[0]=='-')
            {
                if (a[i] == '+'&&i>1)
                {
                    String s1 = "";
                    String s2 = "";
                    int vt1 = 0, vt2 = 0;
                    String chuoiconlai = "";
                    for (int j = i - 1; j >= 0; j--)
                    {
                        if (a[j] != '*' && a[j] != '/' && a[j] != '+' && a[j] != '-')
                        {
                            s1 += a[j];
                        }
                        else if (a[j] == '*' || a[j] == '/' || a[j] == '+' || a[j] == '-')
                        {
                            vt1 = 0;
                            break;
                        }

                    }
                    char[] dao = s1.toCharArray();
                    s1 = "";
                    for (int h = dao.length - 1; h >= 0; h--)
                    {
                        s1 += dao[h];
                    }
                    for (int k = i + 1; k < a.length; k++)
                    {
                        if (a[k] != '*' && a[k] != '/' && a[k] != '+' && a[k] != '-')
                        {
                            s2 += a[k];
                        }
                        else if (a[k] == '*' || a[k] == '/' || a[k] == '+' || a[k] == '-')
                        {
                            vt2 = k - 1;

                            break;
                        }
                        if (k + 1 == a.length)
                            vt2 = a.length;
                    }
                    if (s1 != "" && s2 != "")
                    {
                        kq = (-Double.valueOf(s1) + Double.valueOf(s2))+"";
                    }
                    for (int h = 0; h < a.length; h++)
                    {
                        if (h < vt1)
                            chuoiconlai += a[h];
                        if (h == vt1)
                        {
                            chuoiconlai += kq;
                        }
                        if (h > vt2)
                        {
                            chuoiconlai += a[h];
                        }

                    }
                    b = chuoiconlai;
                    XuLyCongTru(b);

                }

                else if (a[i] == '-'&&i>1)
                {
                    String s1 = "";
                    String s2 = "";
                    int vt1 = 0, vt2 = 0;
                    String chuoiconlai = "";
                    for (int j = i - 1; j >= 0; j--)
                    {
                        if (a[j] != '*' && a[j] != '/' && a[j] != '+' && a[j] != '-')
                        {
                            s1 += a[j];
                        }
                        else if (a[j] == '*' || a[j] == '/' || a[j] == '+' || a[j] == '-')
                        {
                            vt1 = 0;
                            break;
                        }

                    }
                    char[] dao = s1.toCharArray();
                    s1 = "";
                    for (int h = dao.length - 1; h >= 0; h--)
                    {
                        s1 += dao[h];
                    }
                    for (int k = i + 1; k < a.length; k++)
                    {
                        if (a[k] != '*' && a[k] != '/' && a[k] != '+' && a[k] != '-')
                        {
                            s2 += a[k];
                        }
                        else if (a[k] == '*' || a[k] == '/' || a[k] == '+' || a[k] == '-')
                        {
                            vt2 = k - 1;
                            break;
                        }
                        if (k + 1 == a.length)
                            vt2 = a.length;
                    }
                    if (s1 != "" && s2 != "")
                    {
                        kq = (-Double.valueOf(s1) - Double.valueOf(s2))+"";
                    }
                    for (int h = 0; h < a.length; h++)
                    {
                        if (h < vt1)
                            chuoiconlai += a[h];
                        if (h == vt1)
                        {
                            chuoiconlai += kq;
                        }
                        if (h > vt2)
                        {
                            chuoiconlai += a[h];
                        }

                    }
                    b = chuoiconlai;
                    XuLyCongTru(b);
                }
            }

        }
        if (DungCongTru == false)
        {
        	edt_input.setText(b);
            DungCongTru = true;
        }
    }

Chạy Chương Trình Và Nhập Chuỗi Bất Kỳ ví dụ như hình:

h1 261x300 Xử Lý Chuỗi Nhập Trên Máy Tính AndroidV

Và kết quả khi ấn dấu = là:

h2 261x300 Xử Lý Chuỗi Nhập Trên Máy Tính Android

Xử Lý Chuỗi Nhập Trên Máy Tính Android

Xử Lý Chuỗi Nhập Trên Máy Tính Android Đăng ngày 03-04-2014  Hôm nay sẽ hướng dẫn làm bài tập Xử Lý Chuỗi Nhập Trên Máy Tính Android 5/10 1580

Thảo luận:

Để bình luận bạn phải đăng nhập thành viên.

File tương tự

Files cùng mục

 
File gợi ý cho bạn
File tải nhiều nhất
Megacode.vn - Thư viện mã nguồn chia sẻ, tải file cho cộng đồng
Copyright © 2013-2021. All rights reserved. Bản quyền thuộc VinaGon
Email: info@vinagon.com
Hotline: 086.924.3838