我有一个字符串,其中指定了特定媒体的大小。我想搜索尺寸并打印。
sampleString =“具有示例4.5GB的示例文本”
注意:字符串可以具有多个模式,例如[4.0GB,4.0MB,4GB,70MB]
“ GB”或“ MB”可以是整数或浮点数。
我的想法是在字符串中搜索上述模式,然后用找到的MB或GB分割它,然后获取与其对应的整数或浮点数。
我已经开始寻找模式,但是代码无法正常工作。下面是我的代码:
public class CheckSize {
public static void main(String args[]) {
System.out.println(size("Sample text having sample 4.5GB"));
}
private static String size(String mString) {
Float size = 0f;
String mbSize = "";
String gbSize = "";
boolean found = mString.matches("\\d");
if (found) {
return "size available";
}
else {
return "size is not available";
}
}
}
请帮助。
答案 0 :(得分:2)
使用正式的正则表达式匹配器可能可以最好地解决此问题。这是一个基本代码,向您显示如何使用它:
String line = "My first thumb drive stored 1.5GB, but second stored 1TB.";
String pattern = "\\b(\\d+(?:\\.\\d+)?)(?:MB|GB|TB)\\b";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);
while (m.find()) {
System.out.println("Found value: " + m.group(1) );
}
Found value: 1.5
Found value: 1
这里的基本思想是我们可以多次遍历您的文本,在每次匹配时都暂停,以打印出存储大小字符串之前的数字。