2013-09-10 2 views
-4

Мне интересно, какой лучший способ получить подстроку из строки, которая не определена до тех пор, пока пользователь не войдет в строку. Например, если пользователь вводит «abcdefg», как я могу получить подстроку «cde», я просмотрел метод indexOf, но это, похоже, используется, когда строка уже известна.Получение подстроки из неизвестной строки в java

+6

Ваш вопрос не имеет смысла. Какое точное требование? 1. получить 3 символа после первых двух? 2. Получить средние символы строки? 3. Чтобы получить 3 символа, вводится символ «ab». 4. Что-то еще? Вы уже знаете, как использовать метод substring (..). Это проблема, которую вы получаете, когда просто копируете решение (http://stackoverflow.com/q/18709601/131872), вместо того, чтобы думать о логике решения. – camickr

+0

То же, но просто: скажите, как вы хотите, чтобы часть строки была выбрана. – Bohemian

+1

@ user2704743, я прошу вас, как научиться публиковать правильный вопрос с ясным и понятным требованием. Ваше время было бы лучше потратить, переформулировать и заявить о своем требовании, а не делать лишний комментарий. – camickr

ответ

3

В методе substring есть метод 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 
1

Вы можете использовать метод substring() для этого. Но я не совсем понимаю, что вы собираетесь делать здесь. вы можете использовать метод indexOf() с некоторой проверкой.

Для примера, к примеру, вы можете попробовать следующее.

подстроку()

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

IndexOf() и подстроку()

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() и подпоследовательности()

String str="abcdefg"; 
    if(str.indexOf('c')!=-1&&str.indexOf('e')!=-1){ 
     System.out.println(str.subSequence(str.indexOf('c'),str.indexOf('e')+1)); 
    } 
0
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)); 

    } 
} 
Смежные вопросы