Как я могу разобрать целые числа из строки в Java? - PullRequest
2 голосов
/ 30 марта 2012

Мне нужно извлечь знаменатель и знаменатель в две переменные типа int из строки.Это может быть: «1 / -2», «4/0», «-2 / 1234» или «5» (в данном случае знаменатель равен 1);

Между пробелами могут быть пробелыцелые числа и "/", без пробелов внутри целого числа.И в строке может быть только одно целое число, а не "/".

Есть идеи?Спасибо.

Привет, я объединил ответы твоих парней, и это работает!Спасибо!

s это строка

s = s.trim();

String[] tokens = s.split("[ /]+");

int inputNumerator = Integer.parseInt(tokens[0]);

int inputDenominator = 1;

if (tokens.length != 1)

      `inputDenominator = Integer.parseInt(tokens[1]);`

Ответы [ 4 ]

6 голосов
/ 30 марта 2012
String[] parts = s.split(" */ *");
int num = Integer.parseInt(parts[0]),
    den = Integer.parseInt(parts[1]);
3 голосов
/ 30 марта 2012

Разделите строку, используя «/» в качестве разделителя, затем удалите все пробелы.После этого используйте Integer.parseInt();
. Чтобы хорошо удалить пробелы, вы можете попробовать проверить последнюю из 1-й строки и 1-й символ 2-й строки, сравнить их с '', если совпадение удаляет их.

0 голосов
/ 30 марта 2012

Надеюсь, это поможет ..,

StringTokenizer st= new StringTokenizer(s, "/");   
int inputDenominator,inputNumerator;

if(st.hasMoreTokens()) 
{
String string1= st.nextToken();
string1=string1.trim();
inputNumerator = Integer.parseInt(string1);
}

if(st.hasMoreTokens()) 
{
String string2= st.nextToken();
string2=string2.trim();
inputDenominator = Integer.parseInt(string2);
} 
else{
inputDenominator=1; 
}
0 голосов
/ 30 марта 2012

Взгляните на это

http://docs.oracle.com/javase/1.4.2/docs/api/java/util/StringTokenizer.html

надеюсь, это поможет!

...