what's the total number of "t"s in:
q: разбиение числа на цифры независимо от длины изучаю java и для практики решаю простенькие логические задачки, типа нахождения счастливого билетика. часто встречаются задания, где на входе есть n-значное число, и необходимо что-то сделать с цифрами, из которого оно состоит (дан диапазон чисел от 1 до 999, найти, в скольких числах из диапазона встречается цифра 2). все, что я знаю и умею - это разбивать ни цифры делением:
int a = 123 / 100 = 1
int b = 123 / 10 % 10 = 2
int c = 123 % 100

остальная часть задачи проверяется условием. собственно сам вопрос: есть ли в java какой либо метод, позволяющий разбивать число на цифры и не привязываться к его длине? например, числа, в которых необходимо искать 2 и ммм 13! вводятся с клавиатуры? и длина числа ограничена только типом int.

a: мне кажется, можно совсем просто:
    int i = 13579;
    string s = ""+i;
    pri.priln(s.length()+" цифр"+" последняя "+s.charat(s.length()-1));

kiss принцип.
a: загоняет цифры в список. а дальше делайте, что душе угодно.
public static list<integer> digitsinnumber(int number) {

    string n = integer.tostring(number);
    char[] chararray = n.tochararray();
    list<integer> cia = new arraylist<integer>();
    for (int i = 0;i<chararray.length; i++){
        int c = character.getnumericvalue(chararray[i]);
        cia.add(c);
    }return cia;
}


a: что-то вы сильно мучаетесь с делением. берите с конца. взятие остатка от деления "%" числа на 10, всегда вам даст последнее из его цифр. и в цикл!
int a = integer.max_value;
stringbuilder s = new stringbuilder();
system.out.println(a);
while(a>0) {
     s.insert(0, a%10);
     a = a / 10;
}
system.out.println(s.tostring());

причем навскидку, написать данный алгоритм можно не одним способом, выбирайте, кому как нравится:
stringbuilder s = new stringbuilder();
    for(int a=integer.max_value; a>0; a/=10)
         s.insert(0, a%10);
system.out.println(s);

так же вам, и только вам, решать записывать цифры подряд, а в конце переворачивать строку, либо сразу писать все в начало строки.
a: предлагаю простой цикл.
int number = sc.nextint();
    int number_create;
    if (number<0){ //делаем число положительным
        number *=-1; 
    }
    for (;number>0;number /=10){
        number_create = number%10;
    }


a: можно так, например.
 bufferedreader read = new bufferedreader(new inputstreamreader(system.in));
    string userin = read.readline();
    int length = userin.length();
    for (int i = 0; i < length; i++){
        int x = integer.parseint(userin.substring(i, (i + 1)));
    }


a: while(number!=0){

    cout<<number%10<<" ";

    num/=10
}


a: #include <iostream>
#include <string>
using namespace std;
int main()
{
    string str;
    int v = 0;
    int a = 0;
    int b = 0;
    int h = 0;
    char num[10] = { '1','2','3','4','5','6','7','8','9','0' };
    int num1[10] = { 1,2,3,4,5,6,7,8,9,0 };
    cin >> str;
    char sym;
   
    int* arr = new int[str.length()];
    int* otvet = new int[str.length()];
    for (int i = 0; i < str.length(); i++)
    {
        sym = str.at(i); // sym получает значение первого элемента строки

        arr[i] = sym; // задаем в массив каждый эллемент


    }
    while ( v != str.length() )
    {
        


            if (arr[a] == num[h]) // есди эллемент массива совподает с какимто числом из массива с символами мы делаем это
            {
                otvet[b] = num1[h];
                
                b = b + 1;
                a = a + 1;
                v = v + 1;
                h = 0;
            }
            
                h = h + 1;
            

        
    }
    for (int k = 0; k < str.length(); k++)
    {


user
In that passage, there are one hundred and five occurrences of the letter "t."
assistant