【问题标题】:getting a substring from an unknown string in java [closed]从java中的未知字符串获取子字符串[关闭]
【发布时间】:2013-09-10 04:19:06
【问题描述】:

我想知道在用户输入字符串之前从未定义的字符串中获取子字符串的最佳方法是什么。例如,如果用户输入“abcdefg”,我怎样才能得到一个子字符串“cde”我已经查看了 indexOf 方法,但这似乎在字符串已知时使用

【问题讨论】:

  • 你的问题毫无意义。确切的要求是什么? 1.得到前两个后的三个字符? 2. 获取字符串的中间字符? 3.输入“ab”后得到3个字符。 4. 还有什么?您已经知道如何使用 substring(..) 方法。这就是当您只是复制解决方案 (stackoverflow.com/q/18709601/131872) 而没有考虑解决方案的逻辑时遇到的问题。
  • 同上,但简单地说:说出您希望如何选择字符串的部分。
  • @user2704743,我在问你如何学习发布一个具有清晰易懂要求的正确问题。您最好花时间重新措辞和陈述您的要求,而不是发表不必要的评论。

标签: java string substring


【解决方案1】:

String 类中有一个substring 方法。一般来说,您应该查看相关类的 javadocs,看看是否有任何适用的方法可以用于您正在尝试做的事情。

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html

substring 易于使用。

String s = //something
s.substring(0, 3); //returns characters 0, 1 and 2 as a String

【讨论】:

    【解决方案2】:

    您可以使用substring() 方法来做到这一点。但我不清楚你要在这里做什么。您也可以使用indexOf() 方法进行一些验证。

    对于您的示例案例,您可以尝试以下操作。

    substring()

       String str="abcdefg";
       System.out.println(str.substring(2,5));
    

    indexOf()substring()

       String str="abcdefg";
       if(str.indexOf('c')!=-1&&str.indexOf('e')!=-1){
           System.out.println(str.substring(str.indexOf('c'),str.indexOf('e')+1));
       }
    

    indexOf()subSequence()

      String str="abcdefg";
       if(str.indexOf('c')!=-1&&str.indexOf('e')!=-1){
           System.out.println(str.subSequence(str.indexOf('c'),str.indexOf('e')+1));
       }
    

    【讨论】:

      【解决方案3】:
      public class Test {
          public static void main(String[] args) {
              String str="abcdefg";
              if(str!=null && str.length() > 5)
                  System.out.println(str.substring(2, 5));
              // OR
                  System.out.println(str.subSequence(2, 5));
      
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2012-02-28
        • 1970-01-01
        • 2020-10-19
        • 2017-10-16
        • 1970-01-01
        • 2013-06-27
        • 1970-01-01
        • 1970-01-01
        • 2016-08-03
        相关资源
        最近更新 更多