我想用以下符号分割我的字符串:+、-、*、/ 但 .split 函数只接受一个

Posted

技术标签:

【中文标题】我想用以下符号分割我的字符串:+、-、*、/ 但 .split 函数只接受一个【英文标题】:I want to split my string with the following symbols: +, -, *, / but .split function only accepts one 【发布时间】:2014-02-25 20:27:53 【问题描述】:

目前,这是我的代码:

public void setEquals(View v)
    EditText txtDisplay = (EditText) findViewById(R.id.txtDisplay);
    display = txtDisplay.getText().toString();
    String[] strArrDisplay = display.split("\\+");
    txtDisplay.setText(String.valueOf(strArrDisplay[0]));

我当前的代码只能成功拆分加号(+)。如果有加号、减号、乘号或除号,我希望拆分字符串。

假设输入为:123+5-2 所以期望的输出应该是:

strArrDisplay[0] = "123"
strArrDisplay[1] = "5"
strArrDisplay[2] = "2"

【问题讨论】:

什么语言?标记它。同时修复缩进 我是***的新手,所以我很抱歉。编程语言是 Java,因为我正在开发一个 android 应用程序。 您的意思是要拆分这些字符中的任何一个还是全部?请显示输入和输出示例。 @user3262417 - 没关系。也许获得一个真实的用户名也会有所帮助。但是你会得到 +1 来帮助你开始 【参考方案1】:

您可以使用StringTokenizer 来拆分您的字符串。

    StringTokenizer tokens = new StringTokenizer("123+766-12", "-+*/");
    while (tokens.hasMoreTokens()) 
        Log.d("test", tokens.nextToken());
    

【讨论】:

【参考方案2】:

String.split 需要一个正则表达式来拆分,所以你可以简单地:

 String[] array = myString.split("\\+|\\-|\\*|\\/");

请给我一些反馈

希望有所帮助。

【讨论】:

在点和破折号上分开。那对OP有什么用?您是从其他问题中复制并粘贴的吗? @Simon 我只写了一个例子,现在更新了我的答案,就像他想要的那样:) 好的,反对票被推翻。一个更简洁的解决方案可能是split(Pattern.quote("+-/*")) 感谢 Amrola!我是这种语言的新手,而且我在字符串操作方面并不是很擅长。 :) 在 *** 上要求投票被认为是不良行为。接受表示正确的、被接受的解决方案。赞成票用于添加额外内容的答案。这是一个如此简单的问答,是什么让您相信您的回答比提供问题的解决方案更有价值?

以上是关于我想用以下符号分割我的字符串:+、-、*、/ 但 .split 函数只接受一个的主要内容,如果未能解决你的问题,请参考以下文章

符号 errno 到字符串

字符串去分割符号

将字符串按指定的符号分割为集合或数组

将字符串按指定的符号分割为集合或数组

将字符串按指定的符号分割为集合或数组

在python中优化字符串替换