【问题标题】:I want to split my string with the following symbols: +, -, *, / but .split function only accepts one我想用以下符号分割我的字符串:+、-、*、/ 但 .split 函数只接受一个
【发布时间】: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"

【问题讨论】:

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

标签: java android arrays string split


【解决方案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!我是这种语言的新手,而且我在字符串操作方面并不是很擅长。 :)
    • 在 Stackoverflow 上要求投票被认为是不良行为。接受表示正确的、被接受的解决方案。赞成票用于添加额外内容的答案。这是一个如此简单的问答,是什么让您相信您的回答比提供问题的解决方案更有价值?
    猜你喜欢
    • 1970-01-01
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 1970-01-01
    相关资源
    最近更新 更多