【问题标题】:Splitting strings like push1234 in java在java中拆分像push1234这样的字符串
【发布时间】:2013-02-22 00:01:20
【问题描述】:

所以,请多多包涵,因为我在这里有一个很长的问题,我在 java 中有一些代码使用数组列表来实现堆栈。我需要能够输入命令“push”来将东西添加到堆栈中。但是我的问题是它必须采用 pushSTUFF 格式。

“STUFF”是任何东西,大写、小写、字符串、int 等。我一直试图实现这一点的方法是使用字符串拆分方法,其中 PUSH 是分隔符。然后将命令传递给 switch case。

我很快意识到拆分被丢弃了,至少据我所知,并且 switch case 正在将 pushSTUFF 而不是 push 作为 case 输入。

在考虑这个问题时,我想出了几种方法可以做到这一点。我只是不知道它们是否可能或如何去做。

所以,

  1. 有没有办法像 pushSTUFF 这样拆分字符串并保留两个部分(push 和 STUFF)

  2. 有没有办法从字符串中拆分长度或内容未知的内容(因为我不知道用户将输入什么,所以 STUFF 是未知的)

  3. 有没有办法告诉开关盒寻找 pushSTUFF 而不是仅仅推动(再次因为 STUFF 未知)。

这些甚至有可能做到吗?如果有,你会推荐什么?

我确信有更好的方法,但由于我仍在学习 java,这些似乎是目前最好的方法。我也没有发布任何代码,因为我觉得这个问题没有必要。如果你需要的话,我会发布一些。只需提出要求,我很乐意为您效劳。

(tl;dr) 是否可以执行上述 1、2 或 3 中的任何一项,如果可以,怎么做? 提前致谢。

【问题讨论】:

  • 仅供参考,因为在这个网站上有几十个(如果不是几百个)关于在 Java 中拆分字符串的已回答问题,因此您正在投票。花一点时间谷歌您的问题,或查看右侧栏中的相关问题列表。几乎可以肯定,其他人之前也遇到过您的确切问题。
  • 在过去的一个半小时里,我一直在用谷歌搜索这个问题。如果我自己能找到一些东西,我就不会来这里寻求帮助。我喜欢尽可能自学。

标签: java string split


【解决方案1】:

您可以将正则表达式与组一起使用并迭代匹配的部分,而不是拆分字符串(如您所见,拆分的字符被丢弃)。

对于 #1,您可以执行类似(伪代码)的操作:

   regex = (push)(.*)
   stuff = groups[1]

这也应该涵盖#2,因为它将匹配推送后的所有字符。

我不完全确定您在 #3 中要问什么。

如果你不熟悉java正则表达式,有一个正则表达式教程here

您还可以查看StringTokenizer,它有一个保留分隔符的选项。

【讨论】:

    【解决方案2】:

    如果格式总是 push*SOMETHING* 你为什么不使用 String.substring()?

    你可以这样做:

    String something = "pushSTUFF".substring(4);

    这样,您将始终得到push背后的任何东西。

    如果没有看到实际代码,我真的不明白你想要实现什么,但你的问题似乎很简单,可以通过这种方式解决。

    【讨论】:

      【解决方案3】:

      使用.indexOf 并找到推送:

      public class splitstring {
       public static void main(String[] args){
        String tosplit, part1, part2 = new String();
        int ind = 0;
        tosplit = "push1234";
        ind = tosplit.indexOf("push");
        part1 = tosplit.substring(ind,ind + 4);
        part2 = tosplit.substring(ind + 4, tosplit.length());
       }
      }
      

      【讨论】:

        【解决方案4】:

        您可以搜索任何大写字母并使用 String.substring(...)

        Find if first character in a string is upper case, Java

        【讨论】:

          猜你喜欢
          • 2017-08-05
          • 1970-01-01
          • 1970-01-01
          • 2015-03-30
          • 2012-03-21
          • 2013-02-07
          • 1970-01-01
          相关资源
          最近更新 更多