在Java中的字符串中搜索常规子字符串

时间:2018-06-22 07:15:01

标签: java string

我是Java新手。我想问一下如何在给定字符串中搜索常规子字符串。

例如:-
我要在字符串 12345.67 中搜索子字符串 .67
我要在字符串 1.00 中搜索字符串 .00

我基本上想搜索部首(。)之后的字符串,前提是部首之后的字符数仅为 2

根据我的知识,无法搜索通用子字符串,因此我寻求您的帮助。

我希望将输入(存储在数据库中)的浮点数打印为印度货币格式,即以逗号分隔。
我什至看过以前的各种文章,但似乎没有一个对我有帮助,因为几乎每个人都没有产生小数点的返回输出

4 个答案:

答案 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");
}