Nền tảng Kiến thức - Hành trang tới Tương lai
Card image

Chương 5-Bài 13. Mã hóa chuỗi với Alternating Captions (AlTeRnAtInG_CaPs​​​​​)

Tác giả: Dương Nguyễn Phú Cường #683
Ngày đăng: Hồi xưa đó
Lượt xem: 98

Mô tả bài toán

Viết chương trình Console, với Phương thức HackerSpeak có thể mã hóa nội dung tin nhắn của người dùng.
//AlternatingCaps("Hello") ➞ "HeLlO"
//AlternatingCaps("Hey, how are you?") ➞ "HeY, hOw aRe yOu?"
//AlternatingCaps("OMG!!! This website is awesome!!") ➞ "OmG!!! tHiS WeBsItE Is aWeSoMe!!"
//Rules: 
//- First character is alway UPPERCASE

Cách giải quyết

Tạo phương thức AlternatingCaps(string msg), với các xử lý sau:
  • Chuyển chuỗi nội dung tin nhắn msg thành mảng các ký tự characters
  • Duyệt vòng lặp từ 0 -> characters.Length, xét:
    • Nếu index % 2 == 0, tức là các ký tự chẵn (bao gồm ký tự thứ 0, 2, 4, 6, ...) -> ta sẽ chuyển thành chữ in hoa.
    • Ngược lại, nếu index % 2 != 0, tức là các ký tự lẻ (bao gồm ký tự thứ 1, 3, 5, 7, ...) -> ta sẽ chuyển thành chữ in thường.

Source code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AlTeRnAtInG_CaPs​​​​​
{
    class Program
    {
        //AlternatingCaps("Hello") ➞ "HeLlO"
        //AlternatingCaps("Hey, how are you?") ➞ "HeY, hOw aRe yOu?"
        //AlternatingCaps("OMG!!! This website is awesome!!") ➞ "OmG!!! tHiS WeBsItE Is aWeSoMe!!"
        //Rules: 
        //- First character is alway UPPERCASE
        static string AlternatingCaps(string msg)
        {
            char[] characters = msg.ToCharArray();
            for (int i = 0; i < characters.Length; i++)
            {
                if ((i % 2) == 0) //0, 2, 4, 6 ...
                {
                    characters[i] = Char.ToUpper(characters[i]);
                }
                else //1, 3, 5, 7, ...
                {
                    characters[i] = Char.ToLower(characters[i]);
                }
            }

            return new string(characters);
        }

        static void Main(string[] args)
        {
            Console.WriteLine("Enter your secret message: ");
            string msgInput = Console.ReadLine();

            Console.WriteLine("Hacker speak: ");
            string hacked = AlternatingCaps(msgInput);
            Console.WriteLine(hacked);

            Console.ReadKey();
        }
    }
}

Github

https://github.com/kellyfire611/learning.nentang.vn-csharp/blob/master/src/AlTeRnAtInG_CaPs%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B/Program.cs

Chương trình học


  1. Cài đặt môi trường Lập trình C# 2
    1. Cài đặt Visual Studio #13
    2. Môi trường phát triển .NET #232
  2. Nhập môn Lập trình C# 18
    1. Giới thiệu ngôn ngữ lập trình C# #323
    2. Cấu trúc chương trình C# #166
    3. Cú pháp cơ bản C# #238
    4. Các kiểu dữ liệu trong C# #240
    5. Chuyển đổi kiểu dữ liệu trong C# #245
    6. Khởi tạo biến trong C# #247
    7. Hằng số trong C# #249
    8. Toán tử trong C# #251
    9. Điều kiện trong C# #253
    10. Vòng lặp trong C# #262
    11. Tính bao đóng trong C# #274
    12. Tạo phương thức/hàm trong C# #276
    13. Đối tượng Nullable trong C# #280
    14. Mảng trong C# #283
    15. Chuỗi trong C# #349
    16. Cấu trúc trong C# #351
    17. Enums trong C# #353
    18. Truyền Tham số Reference hay Tham trị (Value) trong C# #10172
  3. Hướng đối tượng trong C# 12
    1. Class trong C# #355
    2. Kế thừa trong C# #359
    3. Tính đa hình trong C# #361
    4. Nạp chồng toán tử trong C# #534
    5. Giao diện (Interface) trong C# #537
    6. Namespace trong C# #540
    7. Các lệnh tiền xử lý trong C# #543
    8. Biểu thức chính quy (Regular) trong C# #726
    9. Bắt các lỗi/ngoại lệ (Exception) trong C# #730
    10. Xử lý Đọc/Ghi File trong C# #732
    11. LINQ trong C# #7805
    12. Mã hóa (Encryption) và Giải mã (Decryption) trong C# #11880
  4. Các kỹ thuật nâng cao trong C# 2
    1. Thuộc tính (Attributes) trong C# #739
    2. Biên dịch ngược (Reflection) trong C# #741
  5. Bài tập thực hành 28
    1. Khai báo các Kiểu dữ liệu cho Mẫu Lý lịch A2 và Mẫu Hóa đơn Bán hàng #7703
    2. Sử dụng các Toán tử cơ bản trong C# #7704
    3. Kiểm tra số chẵn hay lẻ #171
    4. Thay đổi vị trí của 2 phần tử #175
    5. Tính tổng các kí tự số #224
    6. Đảo ngược con số #229
    7. Tạo chương trình ATM đơn giản #466
    8. Tạo chương trình ATM đơn giản với các phương án rút tiền theo các mệnh giá #477
    9. Tìm số Max, Min trong mảng 2 chiều #480
    10. Tạo cấu trúc lưu trữ thông tin Nhân viên #654
    11. Làm quen Hướng đối tượng trong C# #661
    12. Mã hóa chuỗi với Hacker Speak (H4ck3rSp34k) #681
    13. Mã hóa chuỗi với Alternating Captions (AlTeRnAtInG_CaPs​​​​​) #683
    14. Tính tổng 2 số nhỏ nhất trong danh sách #689
    15. Trích xuất thông tin từ dữ liệu trong FILE TEXT #760
    16. In bảng cửu chương #7747
    17. In tam giác Nhị phân #7749
    18. In tam giác Số ký tự #7751
    19. Đếm số 1 #7754
    20. Sử dụng Mảng 2 chiều để in tên dạng Asterisk ra màn hình #7761
    21. Sử dụng Mảng 1 chiều để phân tách Tên với khoảng cách #7765
    22. Bài tập Biểu thức Chính quy (Regular Expression) #7779
    23. Ghi log lỗi với File và Try Catch #7795
    24. Ghi Access log #7796
    25. LINQ group by tên tập tin #7812
    26. LINQ với collection #7822
    27. Tạo chương trình Quản lý Danh sách Sinh viên và Giảng viên #8554
    28. Bài tập tạo các CLASS OOP C# căn bản 1 #11842
  6. Kiểm tra kiến thức 1
    1. Kiểm tra kiến thức Lập trình C# #205
  7. Kiểm tra kiến thức - Đồ án 4
    1. Bài tập Kiểm tra Thực hành C# - Đề 01 #903
    2. Bài tập Kiểm tra Thực hành C# - Đề 02 #7825
    3. Đề thi Aptech C# - Đề 01 #11888
    4. Đề thi Aptech C# - Đề 02 #11891
Các bài học

Chương trình học

Bao gồm Module, Chương, Bài học, Bài tập, Kiểm tra...

Chương trình học


  1. Cài đặt môi trường Lập trình C# 2
    1. Cài đặt Visual Studio #13
    2. Môi trường phát triển .NET #232
  2. Nhập môn Lập trình C# 18
    1. Giới thiệu ngôn ngữ lập trình C# #323
    2. Cấu trúc chương trình C# #166
    3. Cú pháp cơ bản C# #238
    4. Các kiểu dữ liệu trong C# #240
    5. Chuyển đổi kiểu dữ liệu trong C# #245
    6. Khởi tạo biến trong C# #247
    7. Hằng số trong C# #249
    8. Toán tử trong C# #251
    9. Điều kiện trong C# #253
    10. Vòng lặp trong C# #262
    11. Tính bao đóng trong C# #274
    12. Tạo phương thức/hàm trong C# #276
    13. Đối tượng Nullable trong C# #280
    14. Mảng trong C# #283
    15. Chuỗi trong C# #349
    16. Cấu trúc trong C# #351
    17. Enums trong C# #353
    18. Truyền Tham số Reference hay Tham trị (Value) trong C# #10172
  3. Hướng đối tượng trong C# 12
    1. Class trong C# #355
    2. Kế thừa trong C# #359
    3. Tính đa hình trong C# #361
    4. Nạp chồng toán tử trong C# #534
    5. Giao diện (Interface) trong C# #537
    6. Namespace trong C# #540
    7. Các lệnh tiền xử lý trong C# #543
    8. Biểu thức chính quy (Regular) trong C# #726
    9. Bắt các lỗi/ngoại lệ (Exception) trong C# #730
    10. Xử lý Đọc/Ghi File trong C# #732
    11. LINQ trong C# #7805
    12. Mã hóa (Encryption) và Giải mã (Decryption) trong C# #11880
  4. Các kỹ thuật nâng cao trong C# 2
    1. Thuộc tính (Attributes) trong C# #739
    2. Biên dịch ngược (Reflection) trong C# #741
  5. Bài tập thực hành 28
    1. Khai báo các Kiểu dữ liệu cho Mẫu Lý lịch A2 và Mẫu Hóa đơn Bán hàng #7703
    2. Sử dụng các Toán tử cơ bản trong C# #7704
    3. Kiểm tra số chẵn hay lẻ #171
    4. Thay đổi vị trí của 2 phần tử #175
    5. Tính tổng các kí tự số #224
    6. Đảo ngược con số #229
    7. Tạo chương trình ATM đơn giản #466
    8. Tạo chương trình ATM đơn giản với các phương án rút tiền theo các mệnh giá #477
    9. Tìm số Max, Min trong mảng 2 chiều #480
    10. Tạo cấu trúc lưu trữ thông tin Nhân viên #654
    11. Làm quen Hướng đối tượng trong C# #661
    12. Mã hóa chuỗi với Hacker Speak (H4ck3rSp34k) #681
    13. Mã hóa chuỗi với Alternating Captions (AlTeRnAtInG_CaPs​​​​​) #683
    14. Tính tổng 2 số nhỏ nhất trong danh sách #689
    15. Trích xuất thông tin từ dữ liệu trong FILE TEXT #760
    16. In bảng cửu chương #7747
    17. In tam giác Nhị phân #7749
    18. In tam giác Số ký tự #7751
    19. Đếm số 1 #7754
    20. Sử dụng Mảng 2 chiều để in tên dạng Asterisk ra màn hình #7761
    21. Sử dụng Mảng 1 chiều để phân tách Tên với khoảng cách #7765
    22. Bài tập Biểu thức Chính quy (Regular Expression) #7779
    23. Ghi log lỗi với File và Try Catch #7795
    24. Ghi Access log #7796
    25. LINQ group by tên tập tin #7812
    26. LINQ với collection #7822
    27. Tạo chương trình Quản lý Danh sách Sinh viên và Giảng viên #8554
    28. Bài tập tạo các CLASS OOP C# căn bản 1 #11842
  6. Kiểm tra kiến thức 1
    1. Kiểm tra kiến thức Lập trình C# #205
  7. Kiểm tra kiến thức - Đồ án 4
    1. Bài tập Kiểm tra Thực hành C# - Đề 01 #903
    2. Bài tập Kiểm tra Thực hành C# - Đề 02 #7825
    3. Đề thi Aptech C# - Đề 01 #11888
    4. Đề thi Aptech C# - Đề 02 #11891

Bài học trước Bài học tiếp theo