Java 从字符串中减去字符串
我有一个字符串Java 从字符串中减去字符串,java,string,Java,String,我有一个字符串1.2秒或者说0.4秒我想做的很简单,只需从字符串末尾删除sec。我只想在一行中完成它。我知道其他的方法,转换为字符数组搜索空间和删除,然后所有这些,但我想知道这是否可以像“1.2秒”-“秒”,或者像时间-“秒”或者类似的方法,但只需要一两行。如果没有,我知道怎么做。但如果有,怎么办 更新: 如果我执行此代码: String time = stopwatch1.getjLabel4text(); String replace = time.replace(" sec",""); S
1.2秒
或者说0.4秒
我想做的很简单,只需从字符串末尾删除sec
。我只想在一行中完成它。我知道其他的方法,转换为字符数组搜索空间和删除,然后所有这些,但我想知道这是否可以像“1.2秒”-“秒”
,或者像时间-“秒”
或者类似的方法,但只需要一两行。如果没有,我知道怎么做。但如果有,怎么办
更新:
如果我执行此代码:
String time = stopwatch1.getjLabel4text();
String replace = time.replace(" sec","");
System.out.println(replace+"");
System.out.println(time+"");
我得到输出:
2.0 Sec
2.0 Sec
使用子字符串:
str.substring(0, str.length() - " sec".length());
或
s
中,您可以使用s.replaceAll(“秒”),将其删除。您可以这样做
String str = "1.2 sec";
String requiredString = str.substring(0,str.indexOf('s')).trim();
或
或
按照@Blekit的建议使用子字符串
。添加此答案是为了说明应使用String.replace
而不是String.replaceAll
,因为replaceAll使用regex/Pattern类,在这种情况下不需要
String result=str.replace(“Sec”和“)代码>您可以删除所有不需要的内容:
s.replaceAll("[^0-9\\.]*", "")
使用StringTokenizer怎么样
new StringTokenizer("0.2 Sec").nextToken();
它将返回“0.2”String result=String.replaceAll(“sec”和“)
可以完成这项工作……是的,我知道的唯一方法就是使用字符串操作方法,正如人们所展示的那样。-
操作符没有像我不相信的那样实现。替换
不区分大小写-如果我看得没错,你需要将time.replace(“sec”)
更改为time.replace(“sec”)
@Blekit是的:D谢谢你,我认为这可能是最好/最优雅的解决方案。向上投票。indexOf('s')和trim()只是让它变得不必要的冗长。公正指数(“sec”);当然可以?用户可以输入1.2秒
。用户错误,但我们的代码必须处理思想。然后最好编写str.substring(0,str.indexOf(“”)
-您不必调用trim()
用户可能使用“Foosball 1.2秒”,那么您也错了。给出问题的答案,而不是一些假设。那么这会仅仅改变str的内容吗?或者生成名为substring的新字符串?Java中的字符串是不可变的-方法substring生成新字符串。您不能更改原始String对象的值。我的意思是,在String类的实例上调用方法substring
(或者实际上调用String类的任何方法),您将生成一个具有新值的新实例。这甚至会生成一个新字符串吗?这确实有效。你能告诉我为什么这个字符串不替换=time.replace(“秒”)代码>工作?您的示例使用的是“秒”
,而不是“秒”
String.replace()
是区分大小写的方法。问题是您有一个大写的'S'
。尝试将该方法更改为s.replaceAll(“秒”)
。
str.replaceAll(" sec", "");
s.replaceAll("[^0-9\\.]*", "")
new StringTokenizer("0.2 Sec").nextToken();