从格式化字符串Java,Groovy中读取值
发布时间:2020-12-15 05:09:22 所属栏目:Java 来源:网络整理
导读:我想知道如何从Groovy甚至 Java中的格式化字符串中读取单个属性有什么好方法. 我有一个包含由空格分隔的属性的字符串.例如“2.1 20 Something true”.订单是固定的,“属性类型”是已知的(例如,首先是Float,第二个是Integer等).我需要类似String.format()的东
我想知道如何从Groovy甚至
Java中的格式化字符串中读取单个属性有什么好方法.
我有一个包含由空格分隔的属性的字符串.例如“2.1 20 Something true”.订单是固定的,“属性类型”是已知的(例如,首先是Float,第二个是Integer等).我需要类似String.format()的东西,但反过来. 我知道我可以手动拆分字符串并读取值,但这会使代码过于复杂,如下所示: String[] parsedText = "2.1 20 Something true".split(delimiter) try { firstVal = new Float(parsedText[0]) } catch (NumberFormatException e) { throw new RuntimeException("Bad data [0th position in data string],cannot read[{$parsedData[0]}],cannot convert to float") } ... 有没有更好的办法?我很确定至少在Groovy中是:-) 谢谢! 解决方法
Java
Scanner类有一大堆方法用于抓取和解析字符串的下一部分,例如next(),nextInt(),nextDouble()等
代码如下所示: String input = "2.1 20 Something true"; Scanner s = new Scanner(input); float f = s.nextFloat(); int i = s.nextInt(); String str = s.next(); // next() doesn't parse,you automatically get a string boolean b = s.nextBoolean(); 唯一需要警惕的是:next()和nextLine()都可以获得字符串,但next()只能获取到下一个空格的字符串.如果您希望字符串组件中包含空格,则需要考虑到这一点. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |