Java 字符串处理,剪切字符串的一部分
我有一个值为-7.000,10.000,0.000,-212.000的字符串 现在,我想从字符串中去掉.000,如果有,还要去掉前面的-。我的价值观总是积极的 从这个例子中,我得到了7,10,0212。我该怎么做Java 字符串处理,剪切字符串的一部分,java,string,Java,String,我有一个值为-7.000,10.000,0.000,-212.000的字符串 现在,我想从字符串中去掉.000,如果有,还要去掉前面的-。我的价值观总是积极的 从这个例子中,我得到了7,10,0212。我该怎么做 我可以做StringHandling.LEFTmyvalue,1.equals-?StringHandling.LEFTmyvalue,2:StringHandling.LEFTmyvalue,1但我有一个问题,当我的值为10.000时,它只会给我1为什么不把字符串解析为一个数字,然后
我可以做StringHandling.LEFTmyvalue,1.equals-?StringHandling.LEFTmyvalue,2:StringHandling.LEFTmyvalue,1但我有一个问题,当我的值为10.000时,它只会给我1为什么不把字符串解析为一个数字,然后应用一个“绝对”操作符呢
String foo = "-50.000";
double bar = Double.parseDouble(foo);
int result = (int) abs(bar);
String yourResult = String.valueOf(result);
评论后编辑:
若要转义负数,可以在该代码前面加一点:
foo.replaceAll("-", "");
如果你只是想让“378.890”变成“378”,那么更简单的方法是:
String foo = "378.890";
String[] bar = foo.split(".");
String result = bar[0];
如果你需要“0378.890”变成“378”:
String foo = "378.890";
String[] bar= foo.split(".");
String foobar = bar[0];
int result = Integer.parseInt(foobar);
result = abs(result); // If necessary (depends if you want to handle it at the string level or not)
String finalResult = String.valueOf(result);
为什么不将字符串解析为数字,然后应用“绝对”运算符
String foo = "-50.000";
double bar = Double.parseDouble(foo);
int result = (int) abs(bar);
String yourResult = String.valueOf(result);
评论后编辑:
若要转义负数,可以在该代码前面加一点:
foo.replaceAll("-", "");
如果你只是想让“378.890”变成“378”,那么更简单的方法是:
String foo = "378.890";
String[] bar = foo.split(".");
String result = bar[0];
如果你需要“0378.890”变成“378”:
String foo = "378.890";
String[] bar= foo.split(".");
String foobar = bar[0];
int result = Integer.parseInt(foobar);
result = abs(result); // If necessary (depends if you want to handle it at the string level or not)
String finalResult = String.valueOf(result);
使用简单的String.substring调用:
如果输入s以减号开始,则它将被截断,并且在小数点处也将被截断,这样就不会有尾随的零
这是最有效的,因为它只执行所需输出所需的操作。没有不必要的转换和对象创建。使用简单的字符串。子字符串调用:
如果输入s以减号开始,则它将被截断,并且在小数点处也将被截断,这样就不会有尾随的零
这是最有效的,因为它只执行所需输出所需的操作。没有不必要的转换和对象创建。您可以使用replaceAll或replaceFirst,如下所示:
\.[0-9]+
例如:
输出:
您可以测试此示例和其他示例
说明:
replaceFirst-,将删除第一次出现的-with,因为替换为空值。
replaceFirst\\\[0-9]+,将删除第一个出现的点,后跟任意数字。如果有可能,数字可能是700。你想移除这个。同样,您也可以在这个正则表达式中将+替换为*。*表示0个或多个事件,+表示1个或多个事件
进一步资料
您还可以缩短此解决方案,使其需要一个更复杂的regex调用replaceAll。您可以使用replaceAll或replaceFirst,如下所示:
\.[0-9]+
例如:
输出:
您可以测试此示例和其他示例
说明:
replaceFirst-,将删除第一次出现的-with,因为替换为空值。
replaceFirst\\\[0-9]+,将删除第一个出现的点,后跟任意数字。如果有可能,数字可能是700。你想移除这个。同样,您也可以在这个正则表达式中将+替换为*。*表示0个或多个事件,+表示1个或多个事件
进一步资料
您还可以缩短此解决方案,使其需要一次更复杂的regex的replaceAll调用。尝试使用regex:
String yuStr = "-7.000, 10.000, 0.000, -212.000";
System.out.println(yuStr.replaceAll("-|(\\d+)\\.\\d+", "$1"));
输出:
7, 10, 0, 212
尝试使用正则表达式:
String yuStr = "-7.000, 10.000, 0.000, -212.000";
System.out.println(yuStr.replaceAll("-|(\\d+)\\.\\d+", "$1"));
输出:
7, 10, 0, 212
在我看来,这不是字符串的问题,而是数字的问题。将其解析为double,然后处理其绝对值将带您到您想要的地方:
Math.abs(Double.valueOf(val).intValue())
在我看来,这不是字符串的问题,而是数字的问题。将其解析为double,然后处理其绝对值将带您到您想要的地方:
Math.abs(Double.valueOf(val).intValue())
试试这个:
char[] splitChars = {',',' '};
string samplestring = "-7.000, 10.000, 0.000, -212.000 ";
string[] array = (samplestring.Split(splitChars, StringSplitOptions.RemoveEmptyEntries));
char[] splitChars1 = {'.','0'};
for(int i =0; i < array.Length; i++)
{
array[i] = array[i].TrimStart('-').Replace(".000", "");
}
试试这个:
char[] splitChars = {',',' '};
string samplestring = "-7.000, 10.000, 0.000, -212.000 ";
string[] array = (samplestring.Split(splitChars, StringSplitOptions.RemoveEmptyEntries));
char[] splitChars1 = {'.','0'};
for(int i =0; i < array.Length; i++)
{
array[i] = array[i].TrimStart('-').Replace(".000", "");
}
这可以通过简单的数学来实现:
String foo = "-1.99"; // example
double original = Double.parseDouble(foo);
double parsed = Math.floor(Math.abs(original)); // remove '-' if there is one, then round down
这可以通过简单的数学来实现:
String foo = "-1.99"; // example
double original = Double.parseDouble(foo);
double parsed = Math.floor(Math.abs(original)); // remove '-' if there is one, then round down
获取连字符和句点之间的数据?当然,您需要处理连字符或句点不存在的情况。您是说通过Talend Stringhandling例程处理该字符串吗?因为这是一个不同的故事…这是什么字符串处理?获取连字符和句点之间的数据可能吗?当然,您需要处理连字符或句点不存在的情况。您是说通过Talend Stringhandling例程处理该字符串吗?因为这是一个不同的故事…这个字符串处理是什么?他的字符串可能包含像356.7800这样的数字,因为他提到字符串中的大多数数字是367.0000,但不是全部!我们的目标是截断这些数字并显示“356”,还是在这种情况下显示“356.7800”,如果数字是整数则显示不精确?请等待OP的评论以获得进一步澄清!在问题上添加此评论…抱歉之前的错误解释。后面的一切。不适合我。356.7800或356.7800必须是356。我还忘了提到我想把这个值变成一个整数。所以如果它是-345.401或101.00,它必须给我一个345和101的整数,他的字符串可能包含像3这样的数字
56.7800,正如他提到的,字符串中的大多数数字是367.0000,但不是全部!我们的目标是截断这些数字并显示“356”,还是在这种情况下显示“356.7800”,如果数字是整数则显示不精确?请等待OP的评论以获得进一步澄清!在问题上添加此评论…抱歉之前的错误解释。后面的一切。不适合我。356.7800或356.7800必须是356。我还忘了提到我想把这个值变成一个整数。如果它是-345.401或101.00,它必须给我一个345和101的整数