是否有 substring(start, length) 函数?
Posted
技术标签:
【中文标题】是否有 substring(start, length) 函数?【英文标题】:Is there a substring(start, length) function? 【发布时间】:2013-10-13 22:15:54 【问题描述】:我正在尝试使用与 C# 的 string.SubString(int start, int length)
类似的方法。
但是Java中的子字符串函数是string.substring(int start, int end)
。
我希望能够将起始位置和长度传递给子字符串函数。
谁能帮我解决这个问题?
【问题讨论】:
不,但您可以轻松编写一个,或适当地修改您的代码。 【参考方案1】:是的
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring(int, int)
公共字符串子字符串(int beginIndex, int endIndex)
你只需要稍微计算一下就可以得到 endIndex。
【讨论】:
所以?然后他应该使用它和他的头来计算所需的值。没那么难,他编辑了他的问题,我刚看到他以前的版本 我不是说这很难,我是说这不是一个答案,因为你告诉 OP 他/她在问题中已经提到了什么。我没有看到预先编辑的问题,但应该修改答案以考虑最新的编辑。【参考方案2】:可能是这样的
String mySubString(String myString, int start, int length)
return myString.substring(start, Math.min(start + length, myString.length()));
【讨论】:
这是吹毛求疵,但您建议的方法与 C# string.Substring() 方法不同。 C# 方法总是返回一个长度为指定长度的字符串,否则会失败。你的方法容错性更强,但副作用是返回的字符串可能比指定的长度短。 现在进行一些超级挑剔:您犯了与 OP 相同的错误,并将方法称为“SubString”而不是“Substring”。 :-)【参考方案3】:您可以获得的最接近的是使用字符串的constructor
new String(input.getBytes(),start,length);
【讨论】:
被否决,因为它不考虑编码为超过一个字节的字符(UTF-8 是 Java 的默认编码)以上是关于是否有 substring(start, length) 函数?的主要内容,如果未能解决你的问题,请参考以下文章