Вы должны использовать регулярное выражение для этого вида анализа:
public class Example {
public static void main(String[] args) {
String input = "Hi 57 how are you 30";
System.out.println(process(input));
}
private static boolean process(String input) {
Pattern pattern = Pattern.compile(".*?(\\d+).*?(\\d+)");
Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
int one = Integer.parseInt(matcher.group(1));
int other = Integer.parseInt(matcher.group(2));
System.out.println(one);
System.out.println(other);
int total = one + other;
return total >= 80 && total <= 95;
}
return false;
}
}
Вывод:
57
30
true [ 115] blockquote>
Используя оболочку управляет для генерации единственного K-бесплатного-номера, который может использовать Perl:
Изменение в каталог, где Вы хотите к untar (если не уже там), и выполнитесь:
df . | grep -v '^Filesystem' | awk 'NF=6{print $4}NF==5{print $3}{}'
Или замена "." фактической точкой монтирования.
grep избавляется от заголовка, и awk распечатывает килобайты, доступные и для разделения и для строк без разделения.
Это основано на следующем виде вывода, Вам, вероятно, придется корректироваться, если Ваш UNIX производит что-то другое:
Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda4 206434224 56965356 139065176 30% / varrun 1037296 132 1037164 1% /var/run varlock 1037296 0 1037296 0% /var/lock udev 1037296 68 1037228 1% /dev devshm 1037296 12 1037284 1% /dev/shm /dev/sda2 93327 43535 44973 50% /boot /dev/sdc1 155056484 29417456 117824612 20% /media/extra160 gvfs-fuse-daemon 206434224 56965356 139065176 30% /home/pax/.gvfs
Вы, вероятно, хотите модуль CPAN Filesys:: DfPortable.
Вы могли просто использовать встроенные команды Linux для получения результата:
my $vol = "/dev/volume";
my $freespace = `df $vol | grep '$vol' | awk '{print \$4}'`;
# free space in megabytes.
$freespace = sprintf("%01.2f", $freespace / 1024);