我是Java新手。我想问一下如何在给定字符串中搜索常规子字符串。
例如:-
我要在字符串 12345.67 中搜索子字符串 .67
我要在字符串 1.00 中搜索字符串 .00 。
我基本上想搜索部首(。)之后的字符串,前提是部首之后的字符数仅为 2 。
根据我的知识,无法搜索通用子字符串,因此我寻求您的帮助。
我希望将输入(存储在数据库中)的浮点数打印为印度货币格式,即以逗号分隔。
我什至看过以前的各种文章,但似乎没有一个对我有帮助,因为几乎每个人都没有产生小数点的返回输出
答案 0 :(得分:4)
根据我的知识,无法搜索常规子字符串
因此,您可以在这里String substring(int beginIndex)
的方法中学到更多:
String str = "12345.67";
String res = str.substring(str.indexOf('.')); // .67
如果要检查.
之后是否只有2位数字:
String str = "12345.67";
String res = str.substring(str.indexOf('.') + 1); // 67
if(res.length() == 2)
System.out.println("Good, 2 digits");
else
System.out.println("Holy sh** there isn't 2 digits);
答案 1 :(得分:1)
您可以使用split和子字符串来实现目标
String test = "12345.67";
System.out.println(test.split("\\.")[1].substring(0,2));
在split函数中,您可以传递用于分隔符的正则表达式,并在子字符串函数中传递要提取的字符数
答案 2 :(得分:0)
在@azro提供的答案旁边,您也可以使用正则表达式:
String string = "12345.67";
Pattern ppattern = Pattern.compile("\\d+(\\.\\d{2})");
Matcher matcher = pattern.matcher(string);
if(matcher.matches()){
String sub = matcher.group(1);
System.out.println(sub);
}
哪些印刷品:
.67
答案 3 :(得分:0)
String str = "12345.67";
String searchString = "." + str.split("\\.")[1];
if(str.contains(searchString)){
System.out.println("The String contains the subString");
}
else{
System.out.println("The String doesn't contains the subString");
}