2013-06-27 2 views
-2

как разбить строкуРазделить строки на основе начальной и конечной точек

«ABCDEFGHIJK»

я знаю начальную точку и конечную точку для строки

Startid endid 
1  2 
3  5 
6  7 
8  11 

AS 
----- 

AB 
CDE 
FG 
HIJK 
+0

Можете ли вы показать нам любой код? Мы можем помочь вам на этом основании. – Uooo

+0

Что вы пробовали? – John

+0

Вам не нужно много усилий для этого, класс String предоставляет вам метод для этого. Пройти через это. –

ответ

4
String s = string.subString(startpoint,endpoint); 
+3

Почти, не забывайте, что символы индексируются из 0 и OP хочет, чтобы 1 был первым символом. – Pshemo

1

stringVar.subString (sPoint, ePoint);

убедитесь, что вы сбросить значения sPoint и ePoint периодически

0
final String toSplit = "ABCDEFGHIJK"; 

for(final Split split : splits){ 
    if(null != split){ 
     if(0 <= split.startid && split.startid < toSplit.length() && 0 <= split.endid && split.endid < toSplit.length()){ 
      return toSplit.substring(startid, endid); 
     } 
    } 

    return StringUtils.EMPTY; 
} 

Предполагая, класс Split, содержащий ваш startid/endid (другой вариант возможного, конечно):

class Split { 
    public int startid; 
    public int endid; 

    public Split(int startid, int endid){ 
     this.startid = startid; 
     this.endid = endid; 
    } 
} 
0

основе ваш стол, который вы хотите

String s = string.subString(startpoint-1,endpoint-1); 

И если вы, как вы могли бы злоупотребить класс Point (лучше было бы просто создать свой собственный объект) сделайте следующее

String s = "ABCEDEFG..." // you string 
// Create a list of your points (start and end) 
List<Point> list = new ArrayList<Point>(); 
// Add your points 
list.add(new Point(1,2)); 
list.add(new Point(3,5)); //etc 
// Then do this to get your substring 
String[] splits = new String[list.size()] 
int i= 0; 
for(Point p: list) 
{ 
    splits[i] = s.substring(p.getX()-1, p.getY()-1) 
    i++; 
} 
+0

** ERROR ** import java.awt.Point; import java.util.ArrayList; import java.util.List; общественного класса разделить { государственной статической силы основных (арг String []) { \t \t Строка s = "ABCEDEFG"; \t \t Список list = new ArrayList (); \t \t list.add (новая точка (1,2)); \t \t list.add (новый пункт (3,5)); \t \t String [] splits = new String [list.size()]; \t \t int i = 0; \t \t \t для (точка Р: список) \t \t \t { \t \t \t расколы [I] = s.substring (p.getX() - 1, p.getY() - 1); \t \t System.out.println (split [i]); \t \t \t i ++; \t \t \t} \t}} символ: Метод подстроку (двойной, двойной) местоположение: Класс java.lang.String расколы [I] = s.substring (p.getX() - 1, p.getY() -1); – user2064110

+0

Спасибо, это сработало! – user2064110

0
public static String getSubString(String myString,int statIndex,int endIndex){ 
     return myString.substring(statIndex,endIndex); 
} 
+0

Зачем нужен другой метод, который будет использоваться как 'getSubString (myString, statIndex, endIndex)', если у нас уже есть 'myString.substring (statIndex, endIndex);'? Просто спрашиваю... – Pshemo