powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как превратить строку цифр в integer?
14 сообщений из 14, страница 1 из 1
Как превратить строку цифр в integer?
    #33266435
taison
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно распарсить строку result_ti (типа 21:53:24:55) в массив из целых чисел. Код ниже разбивает строку (длина строки каждый раз меняется) на строковый вектор цифр all_ti, где 21 записывается как строка, а нужно в integer и записать в массив ArrayTI[a] по b. b=1000.

while (rs.next()) {
result_ti = rs.getString("ti");
//Оцифровка строки
String ss = "";
int j2;
j2 = result_ti.indexOf(":");
while(j2 > 0){
ss = result_ti.substring(0,j2);
result_ti = result_ti.substring(j2 + 1);
j2 = result_ti.indexOf(":");
all_ti.add(ss);
/*for ( int a = 0; a < ArrayTI.length; a++ ) {//allTreeNames.size()
for ( int b = 0; b < ArrayTI[a].length; b++ ) {//all_ti.size()
ArrayTI[a]=all_ti.get(b).toString();
}
}*/
}
// Здесь наверно должен быть массив ArrayTI[a] вместо вектора all_ti
}
...
Рейтинг: 0 / 0
Как превратить строку цифр в integer?
    #33266444
ТимоН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как превратить строку цифр в integer?
    #33266469
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
taison
//Оцифровка строки

Код: plaintext
1.
2.
3.
4.
StringTokenizer tokenizer =  new  StringTokenizer("21:53:24:55", ":");
 while  (tokenizer.hasMoreTokens()) {
  System.out.println(tokenizer.nextToken());
}
...
Рейтинг: 0 / 0
Как превратить строку цифр в integer?
    #33266654
taison
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denis Popov taison
//Оцифровка строки

Код: plaintext
1.
2.
3.
4.
StringTokenizer tokenizer =  new  StringTokenizer("21:53:24:55", ":");
 while  (tokenizer.hasMoreTokens()) {
  System.out.println(tokenizer.nextToken());
}

Спасибо, цифры появились.
Хотел сразу в массив записать, выдаёт что не соответствуют типы (треб int, имеется -Obj). Предварительно цисла в вектор all_ti прописывать что ли?
StringTokenizer tokenizer = new StringTokenizer(result_ti, ":");
while (tokenizer.hasMoreTokens()) {
//System.out.println(tokenizer.nextToken());
for ( int a = 0; a < ArrayTI.length; a++ ) {
for ( int b = 0; b < ArrayTI[a].length; b++ ) {
//System.out.println("ПЕЧАТАЕМ ArrayTI["+a+"]["+b+"]="+ArrayTI[a].length);
ArrayTI[a] =tokenizer.nextElement();
}
...
Рейтинг: 0 / 0
Как превратить строку цифр в integer?
    #33266683
ТимоН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ж давал ссылку.
Код: plaintext
1.
 new  Integer(tokenizer.nextElement()).intValue();
...
Рейтинг: 0 / 0
Как превратить строку цифр в integer?
    #33266692
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
String s = "21";
Integer i =  new  Integer(s);
 int  i2 = Integer.parseInt(s);
...
Рейтинг: 0 / 0
Как превратить строку цифр в integer?
    #33266730
Naug
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
String можно сразу распилить в массив используя String.split(String regex)
А потом intArr =Integer.parseInt(stringArr)
...
Рейтинг: 0 / 0
Как превратить строку цифр в integer?
    #33266735
Naug
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
intArr =Integer.parseInt(stringArr)
...
Рейтинг: 0 / 0
Как превратить строку цифр в integer?
    #33267380
Если сделать вид, что лишний вызов new Integer, генерация регэкспов или строк в токенайзере позволительная роскошь, то ок.

Иначе в лоб (хотя тоже не оптимально):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
//считаем, что количество чисел в строке известно заранее
 void  parseInput(String input,  int [] result) {
     for ( int  i= 0 , number =  0 , numberIndex =  0 ; i < input.length(); i++) {
            char  c = input.charAt(i);
            if  (c == ':') {
                 result[numberIndex++] = number;
                 number =  0 ;
           }  else  {
                 number = number* 10  + (c-'0');
           }   
    }
}
...
Рейтинг: 0 / 0
Как превратить строку цифр в integer?
    #33267386
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 void  parseInput(String input,  int [] result) {
     int  number =  0 ;
     int  numberIndex =  0 ;
     for ( int  i= 0 ; i < input.length(); i++) {
            char  c = input.charAt(i);
            if  (c == ':') {
                 result[numberIndex++] = number;
                 number =  0 ;
           }  else  {
                 number = number* 10  + (c-'0');
           }   
    }
    result[numberIndex]=number;
}
...
Рейтинг: 0 / 0
Как превратить строку цифр в integer?
    #33287688
taison
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не сработал ваш код у меня. Я сделал по другому. Но проблемка, в том что надо ещё проверять строку, так как в ней содержатся буквы. Я пытаюсь выкинуть тоукены начинающиеся с буквы. Получаю ругань java.util.NoSuchElementException на строку
[ArrayTI[a] =(int) new Double(tokenizer.nextElement().toString()).doubleValue();]

while (rs.next()) {
result = rs.getString("tree_items");
result_ti = rs.getString("ti");
allTreeNames.add(result);
StringTokenizer tokenizer = new StringTokenizer(result_ti, ":");
int chislo=tokenizer.countTokens();//подсчёт числа ":"
while (tokenizer.hasMoreTokens()) {
if ((int)tokenizer.nextToken().charAt(0)<48 && (int)tokenizer.nextToken().charAt(0)>57)
//tokenizer.nextToken();
chislo=chislo-1;
else
{System.out.println("ПЕЧАТАЕМ chislo"+chislo);
ArrayTI=new int [allTreeNames.size()][];//выделение памяти для строк 2м массива
for ( int a = 0; a < allTreeNames.size(); a++ ) {
ArrayTI[a]=new int [chislo];//выделение памяти для столбца строки i all_ti.size()
for ( int b = 0; b < chislo ; b++ ) {//all_ti.size()
ArrayTI[a]=-1;
//new Integer(tokenizer.nextElement()).intValue();
ArrayTI[a]=(int) new Double(tokenizer.nextElement().toString()).doubleValue();
}
}
//System.out.println("ПЕЧАТАЕМ ArrayTI["+a+"]["+b+"]="+ArrayTI[a].length);
//int chislo=Integer.parseInt(result_ti);
System.out.println("ПЕЧАТАЕМ ArrayTI["+a+"]["+b+"]="+ArrayTI[a]);
}
}
}
...
Рейтинг: 0 / 0
Как превратить строку цифр в integer?
    #33287825
space_center
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что ты два раза вызываешь, вначале tokenizer.nextToken(), а затем tokenizer.nextElement().

Вызови один раз вначале цикла

Object tmp = tokenizer.nextElement();

а затем работай с этим объектом, тогда и ошибка java.util.NoSuchElementException вылетать не будет
...
Рейтинг: 0 / 0
Как превратить строку цифр в integer?
    #33315072
taison
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OK, а почему такая конструкция не обнуляет тоукены начинающиеся с буквы?

ArrayTI=new int [200][];//выделение памяти для строк 2м массива allTreeNames.size()
for ( int a = 0; a < 200; a++ ) {

ArrayTI[a]=new int[200];//выделение памяти для столбца строки a
for ( b = 0; b < 200; b++ ) {
ArrayTI[a] =-1;//заполнение массива -1
}
}

int a = 0;
allTreeNames.size()
while (rs.next()) {
result = rs.getString("tree_items");
result_ti = rs.getString("ti");//достаём строку из БД System.out.println("ПЕЧАТАЕМ строку ti="+result_ti);
allTreeNames.add(result);//записываем строку в вектор
StringTokenizer tokenizer = new StringTokenizer(result_ti, ":");//разбор строки по двоеточиям
int chislo=tokenizer.countTokens();//подсчёт числа ":"
//for ( int a = 0; a < 50; a++ ) {//allTreeNames.size()
int b = 0;
Object tmp;
while (tokenizer.hasMoreTokens()) {
tmp = tokenizer.nextToken();
if ((int)tmp.toString().charAt(0)<48 && (int)tmp.toString().charAt(0)>57)
{chislo=chislo-1;
tmp = null;
//tokenizer.nextToken();
System.out.println("ПЕЧАТАЕМ chislo="+chislo);}
else
{
int PP=(int) new Double(tmp.toString()).doubleValue();
//ArrayTI[a]=PP;
System.out.println("ПЕЧАТАЕМ ArrayTI["+a+"]["+b+"]="+PP);//ArrayTI[a]
//}
b++;
}
}
a++;
...
Рейтинг: 0 / 0
Как превратить строку цифр в integer?
    #33315090
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 taison:
используй
SRC java /SRC,
а то аж глаза режет
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как превратить строку цифр в integer?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]