【问题标题】:java String start and end position [closed]java字符串开始和结束位置[关闭]
【发布时间】:2014-05-07 12:04:18
【问题描述】:

我有一个字符串,我想检查开始和结束位置。 例如,我的字符串是“我是https://stackoverflow.com/ 的新用户”。我想在这个字符串中只显示“用户”。 我该如何解决这个问题?

我想在 new 和 in 之间显示字符串。开始位置 new 和结束位置 in。结果用户 我试过这段代码

String source = "I am new User in  https://stackoverflow.com/";
    int indexOfP = source.indexOf("User");

    String result = source.substring(indexOfP, indexOfP + 4);
    System.out.println(result); // prints 'User '

但我不知道我的字符串的长度。

【问题讨论】:

  • 为什么要剪掉一个你已经知道的单词?
  • 问题是什么?你的代码似乎做了你试图解释的事情?
  • 我想在 new 和 in 之间显示字符串。开始位置 new 和结束位置 in.result 用户
  • 那么您绝对应该编辑您的问题。非常不清楚。
  • 我更新了我的问题

标签: java string


【解决方案1】:

为什么不使用String.length()? 例如:

String source = "I am new User in  http://stackoverflow.com/";
String needle = "User";
int indexOfP = source.indexOf(needle);

String result = source.substring(indexOfP, indexOfP + needle.length());
System.out.println(result); 

【讨论】:

  • 我想在 new 和 in 之间显示字符串。开始位置 new 和结束位置 in.result 用户
  • 你知道“新”和“新”吗?我的意思是,这些词是不变的吗?
【解决方案2】:

如果始终是相同的字符串并且只有用户名发生变化:

String source = "I am new username in http://stackoverflow.com/";
int indexOfNew = source.indexOf("new");
int indexOfIn = source.indexOf("in");

String result = source.substring(indexOfNew + 4, indexOfIn - 1);
System.out.println(result); // prints username

【讨论】:

  • 谢谢,但不是同一个字符串
  • 在你的问题中多放一些例子,我猜是用不同用户名的句子?
【解决方案3】:
// The words are delimited by spaces
String[] tokens = source.split(" ");

// ... and you want the 4th word
result = tokens[3];

【讨论】:

  • 我不知道这个解决方案,因为 meybe 字符串已更改,我不知道字符串长度。简单我想要开始和结束位置。仅此而已
  • 仅当用户名不包含空格时才有效,这在问题中并不清楚。如果不是这样,这将是最好的解决方案
猜你喜欢
  • 1970-01-01
  • 2015-03-11
  • 1970-01-01
  • 2018-11-14
  • 1970-01-01
  • 1970-01-01
  • 2020-11-17
  • 1970-01-01
  • 2019-02-21
相关资源
最近更新 更多