2014-11-18 3 views
1

У меня есть 2 строки, как показано ниже:Java Get подстрока строки

String paramNum = "99999256"; 
String opCode = "99999"; 

На String paramNum Я хочу, чтобы извлечь ту часть строки, которая появляется после того, как значения строки, содержащихся в opCode

Так с приведенным выше примером: результат должен быть "99999256" - "99999" = "256". Разберите paramNum (99999256) и достигните позиции после 99999, а затем выполните подстроку до конца строки. Но я не уверен, как добраться до этой позиции?

Обратите внимание, что это только символическое представление того, что я хочу делать с этими строками, и они означают вычитание на 2 int.

ответ

5

Один из способов более 100 возможных способов:

String res = paramNum.replace(opCode,""); 

Посетите String API, чтобы питать ваш творческий огонь.

Если вы хотите заменить только первый матч, вы можете:

String res = paramNum.replaceFirst(opCode,""); 
+1

вероятно самый простой из их всех. –

+5

Трудно, потому что если 'opCode' появляется несколько раз в строке, все вхождения будут заменены. –

+3

Что делать, если 99999 появляется во второй половине? – Adam

1

Использование String#substring:

int indexOfOpCode = paramNum.indexOf(opCode); 
if(indexOfOpCode != -1) { 
    String extractedStr = paramNum.substring(indexOfOpCode + opCode.length()); 
    ... 
} 
+0

или использовать ['StringUtils.substringAfter'] (http: //commons.apache. орг/правильный/Обще-Ланг/apidocs/орг/Apache/Обще/lang3/StringUtils.html # substringAfter% 28java.lang.String,% 20java.lang.String% 29) – jhamon

0

я пришел с ниже:

if (paramNum.startsWith(opCode)) { // This can be - if (paramNum.contains(opCode)) { 
    String res = paramNum.substring(opCode.length(), paramNum.length()); 
} 

Обратите внимание, что для моего случай, который строка, которую я хочу найти, всегда появляется в начале ...

0

Один из способов:

String opcode;

Строка res = paranum.replaceAll (код операции, "");

Заменит все вхождения строки опкода с пространством ... в то время как на месте опкода вы также можете дать регулярное выражение в виде строки ...

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