public class SplitTest {
public static void main(String args[])
{
String str = "32.85k";
String[] arrOfStr = str.split("k", 10);
for (String a : arrOfStr)
System.out.println(a);
}
}
我的输出是32.85K,我需要我的输出是32.85,并且'k'分开
答案 0 :(得分:1)
一种选择是使用以下外观进行拆分:
(?<=\d)(?=[A-Za-z])
这表示要在字符串中的任意位置拆分,其中之前是数字,后面是小写/大写字母。
String str = "32.85k";
String[] arrOfStr = str.split("(?<=\\d)(?=[A-Za-z])");
for (String a : arrOfStr) {
System.out.println(a);
}
答案 1 :(得分:1)
如果您确定该字符串具有number dot number K
模式,
您可以只使用replace
方法
String str = "32.85k";
String str2 = str.replace("k",""); // will return "32.85"
答案 2 :(得分:0)
您可以使用此正则表达式代码来实现,
public static void main(String[] args) throws IOException {
String str = "32.85k";
Pattern p = Pattern.compile("(\\d+\\.\\d+)([a-zA-Z]+)");
Matcher m = p.matcher(str);
if (m.matches()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
}
}
答案 3 :(得分:0)
如果您知道字符串将是一个字符长,则可以将substring(0,length-1)用作double,并将substring(length -1,length)用作String。
如果您不知道字符串的大小,则必须使用Regex。
Matcher m = Pattern.compile("(\\d+\\.\\d+)(\.)")
while(m.find()){
double d = Double.parseDouble(m.group(1));
String unity = m.group(2);
}