2013-10-07 4 views
6

Я пытаюсь использовать аналогичный метод для C# string.SubString(int start, int length).Есть функция подстроки (начало, длина)?

Но функция подстроки в Java равна string.substring(int start, int end).

Я хочу иметь возможность передать начальную позицию и длину функции подстроки.

Может ли кто-нибудь помочь мне решить эту проблему?

+0

Нет, но вы можете легко написать один , или изменить свой код соответствующим образом. – Dukeling

ответ

18

Это может быть что-то вроде

String mySubString(String myString, int start, int length) { 
    return myString.substring(start, Math.min(start + length, myString.length())); 
} 

         

+0

Спасибо! Этот метод сработал! –

+2

Это nit-picking, но ваш предложенный метод не совпадает с методом C# string.Substring(). Метод C# всегда возвращает строку, длина которой является указанной длиной, или она терпит неудачу. Ваш метод более отказоустойчив, но с побочным эффектом, что возвращаемая строка может быть короче указанной длины. – RenniePet

+1

И теперь для некоторого супер-nit-picking: вы совершили ту же ошибку, что и OP, и назвали метод «SubString» вместо «Substring». :-) – RenniePet

0

да

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring(int, целое)

общественности Строка подстрока (интермедиат beginIndex, INT ENDINDEX)

вам просто нужно рассчитать немного для того, чтобы получить ENDINDEX.

+0

OP уже знает об этой функции. – Dukeling

+0

так? то он должен использовать его и свою голову для вычисления желаемых значений. это не так сложно , и он отредактировал свой вопрос, я только что видел его предыдущую версию – tagtraeumer

+0

Я не говорю, что это сложно, я говорю, что это не ответ, поскольку вы говорите OP, что он/она уже упоминал в вопросе , Я не видел предварительно отредактированный вопрос, но ответы должны быть изменены, чтобы учесть последнее изменение. – Dukeling

1

Ближайший вы можете получить с помощью струны constructor

new String(input.getBytes(),start,length); 
Смежные вопросы