• Как построить логику приложения?

    @DS_JS Автор вопроса
    когда запускаю отдельно вот эту часть
    package com.example.start;
    
    import java.util.Arrays;
    
    
    public class Main {
    
        public static void main(String[] args) {
            int number = 0;
            String name = "Вода";
            char[] nameArr;
            Character[] ukr = {'А', 'Б', 'В', 'Г', 'Ґ', 'Д', 'Е', 'Є', 'Ж', 'З', 'И', 'І', 'Ї', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ю', 'Я'};
            name = name.toUpperCase();
            nameArr = name.toCharArray();
    
    
    
            int[] ukrn = {1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6};
    
            for (int s = 0; s < nameArr.length; s++)  {
                int nameFind = nameArr[s];
    
                for (int a = 0; a < ukr.length; a++) {
    
                    if (nameFind == ukr[a]) {
                        int index = Arrays.asList(ukr).indexOf(ukr[a]);
                        number += ukrn[index];
                        //System.out.println(number);
                        //break;
                    }
                }
            }
    
            int num = number;
            int sum = 0;
            while (num > 0) {
                sum = sum + num % 10;
                num = num / 10;
            }
            System.out.println(sum);
        }
    }

    В консоли Android Studio все работает
    Когда подставляю в MainActivity кричит что что-то не так
  • Как построить логику приложения?

    @DS_JS Автор вопроса
    Доброго времени суток
    Получилось немного поправить код но теперь ругаеться на последнюю строку вывода результата в textView код ошибки: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(int)' on a null object reference
    at com.example.num.MainActivity.sendMessage(MainActivity.java:73)

    Добавлю весь код
    package com.example.num;
    
    import androidx.appcompat.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.TextView;
    import java.util.Arrays;
    import android.widget.Button;
    
    public class MainActivity extends AppCompatActivity {
    
        TextView textView;
        EditText editText;
    
        @Override      // Новая Activity
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
    
        public int sum = 0;
        public int number = 0;
    
        public void main(String[] args) {
    
            textView = (TextView) findViewById(R.id.textView);
            editText = (EditText) findViewById(R.id.editText);
    
            char[] nameArr = editText.getText().toString().toUpperCase().toCharArray();
            
           // char[] nameArr;
            Character[] ukr = {'А', 'Б', 'В', 'Г', 'Ґ', 'Д', 'Е', 'Є', 'Ж', 'З', 'И', 'І', 'Ї', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ю', 'Я'};
           // name = name.toUpperCase();
            //nameArr = name.toCharArray();
    
            // Character[] name = {'Д', 'М', 'И', 'Т', 'Р', 'О'};
    
            int[] ukrn = {1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6};
    
    
    
            for (int s = 0; s < nameArr.length; s++)  {
                int nameFind = nameArr[s];
    
                for (int a = 0; a < ukr.length; a++) {
    
                    if (nameFind == ukr[a]) {
                        int index = Arrays.asList(ukr).indexOf(ukr[a]);
                        number += ukrn[index];
                        //System.out.println(number);
                        //break;
                    }
                }
    
            }
    
            int num = number;
            sum = 0;
            while (num > 0) {
                sum = sum + num % 10;
                num = num / 10;
            }
    
    
        }
        public void sendMessage(View view ) {
            String str = Integer.toString(sum);
          // String result = Integer.toString(sum);
            textView.setText(str);
        }
    }
  • Как построить логику приложения?

    @DS_JS Автор вопроса
    Благодарю за ответ !)
    Чесно признаюсь я самоучка и пытаюсь читать разные матереалы и уроки но идет с трудом
    вот что у меня получилось
    ну вернее не получилось ..
    package com.example.num;
    
    import androidx.appcompat.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.TextView;
    import java.util.Objects;
    
    
    public class MainActivity extends AppCompatActivity {
    
        @Override      // Новая Activity
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
    
        String[] ukr  = {"А", "Б", "В", "Г", "Ґ", "Д", "Е", "Є", "Ж", "З", "И", "І", "Ї", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ь", "Ю", "Я"};
    
        int[] ukrn  = {1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6};
    
        TextView textView = (TextView) findViewById(R.id.textView);
        EditText editText = (EditText) findViewById(R.id.editText);
    
        int simwol = -1;
        int indexA = -1;
        int nomer = -1;
        // ========================  Преобразуем строку str в массив символов  =========================
        public class Example {
            public void main(String args[]) {
             String tekst = Integer.parseInt(editText.getText().toString());
                char[] strTXT = tekst.toCharArray();
    
                // ==================  Перебор по массивам и поис нужного значения  ====================
                for (int s = 0; s < strTXT.length; s++) {
                    simwol = strTXT[s];
                     for (int a = 0; a < ukr.length; a++) {
                         if (Objects.equals(strTXT[s], ukr[a])) {
                             indexA = ukr[a];
                             nomer += ukrn.length[indexA];
                        }
                    } 
                     break;
                }
            }
        }
      
        // ==============================  Обработка нажатия кнопки  ===================================
    
        public void sendMessage(View view ) {
            textView.setText(nomer); //
        }
    }

    То есть насколько я понял через вложенный цикл
    сначала открываем первый цикл и берем с массива1 первый символ допустим "К"
    Открываем след цикл и находим "К" в массиве2 с алфавитом но тут нужно уже взять только индекс данного символа после чего точно такой же индекс просто достаем с массива3 с кодом символа и добавляем в переменную которую потом нам нужно вывести в качестве ответа