【问题标题】:How to get name between some string?如何在一些字符串之间获取名称?
【发布时间】:2014-08-27 07:24:41
【问题描述】:

我想在给定字符串之间得到一个字符串

像这样..

String wholetext = "SomePlace Pin- 110065 Name and address Alias 1 ID of customer-123 SomePlace "
String namerequired =  "";
String textafter = "110065 Name and address";
String textbefore = "ID of customer";

//Constant part-110065 Name and address and ID of customer

谷歌搜索并得到类似doindexing的东西 还有这个doindexing1

我正在尝试获取 Alias 1 却没有得到任何想法 :( ? 请帮忙

【问题讨论】:

  • 你到底尝试了什么?你得到了什么?
  • 你想获取**之间的字符串吗?
  • 举个例子你想要什么它似乎很随笔使用developer.android.com/reference/java/lang/StringBuilder.html
  • 只想打印别名 1...@akoskm
  • 这在很大程度上取决于你想从你的字符串中得到什么。我的意思是你想要字符串的哪一部分?是否有字符串的常量部分,之后您想获得一些用户输入?

标签: java android string indexing


【解决方案1】:

这应该可以解决您的问题:

    String wholetext = "Place Then Pin- **110065 Name and address** Alias 1 ID of customer-123 Some Place ";
    String textafter = "110065 Name and address";
    String textbefore = "ID of customer";

    int index1 = wholetext.indexOf(textbefore);
    int index2 = wholetext.indexOf(textafter) + textafter.length();

    String namerequired = wholetext.substring(index2, index1);
    System.out.println(namerequired);

输出:

    Alias 1

但使用正则表达式或字符串匹配器可能会更好。

【讨论】:

  • 如果你想要它没有空格,使用 wholetext.substring(intex2 +1, index1 - 1)
  • 谢谢兄弟的回答:)
【解决方案2】:

您可以使用正则表达式(正则表达式)。 互联网上有很多正则表达式学习网站。 我希望这会有所帮助。

【讨论】:

  • 你能给我上面问题的正则表达式的例子吗? @mrkalan
【解决方案3】:

如果你想要的是**最后一次出现之后,你可以试试

String substring = wholetext.substring(wholetext.lastIndexOf("**"));
System.out.println(substring);

【讨论】:

    【解决方案4】:

    您绝对可以使用 Java 的模式匹配来解决您的问题。这将帮助您解决当前的问题和任何未来的Regex 问题

    见:http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 2016-05-15
      • 2017-12-24
      • 1970-01-01
      • 2020-12-29
      • 2021-01-22
      • 2020-04-29
      相关资源
      最近更新 更多