2013-08-25 2 views
3

im try придумал цикл, который пройдет через пружину, и как только он дойдет до символа%, он пройдет все, что приходит после функции% to hexToInt. вот что я придумал.Передача части строки в качестве параметра

for(int x=0; x<temp.length(); x++) 
    { 
     if(temp.charAt(x)=='%') 
     { 
      newtemp = everthing after '%' 
      hexToInt(newtemp); 
     } 
    } 
+0

попробуйте с temp.substring(); – nachokk

+0

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#substring(int) – FDinoff

+1

А также http://docs.oracle.com/javase/7/docs/ api/java/lang/String.html # indexOf (int) –

ответ

7

Попробуйте это:

newtemp = temp.substring(x+1); 

Кроме того, вы должны разорвать после '%' символ найден. На самом деле, весь фрагмент кода может быть реализована следующим образом (нет необходимости писать цикл для него!):

String newtemp = temp.substring(temp.indexOf('%')+1); 
+2

+1, нет необходимости изобретать велосипед. –

+0

Спасибо. вы также можете мне помочь с кодом, чтобы поставить «+» на передний край двух последних символов в строке. – user1896464

+0

У меня есть это, но theres ошибка. красная линия под StringBuffer word = StringBuffer (слово) .insert (word.length() - 2, "+"). toString(); – user1896464

0

Попробуйте взглянуть на метод String.split().

String str1 = "Some%String"; 

public String getString(){ 
    String temp[] = str1.split("%"); 
    return temp[1]; 
} 

Для этого подхода петля не требуется.

0

Использование «содержит» для сравнения и подстрок() метод

if(temp.contains('%')){ 
int index = temp.indexOf('%') + 1; 
String substring = temp.substring(index, temp.length()); 
} 
+1

Нет необходимости: он сравнивает * символы * (обратите внимание на одинарные кавычки). –

+0

спасибо .. позвольте мне улучшить ответ –

1

Вы можете просто взять подстроку исходной строки из первого индекса «%» до конца и выполнить то же самое:

int index = temp.indexOf('%') + 1; 
String substring = temp.substring(index, temp.length()); 

Если вам нужно разбить строку после последнего экземпляра «%» символ в конце строки (предполагая, что есть более чем один символ% в строке), вы можете использовать следующее:

int index = temp.lastIndexOf('%') + 1; 
String substring = temp.substring(index, temp.length()); 
0

Было бы проще проанализировать использование регулярного выражения вместо повторения строки char-by-char. Что-то вроде (.*)%([0-9a-fA-F]+) также может проверить шестнадцатеричный токен.

public static void main(String[] args) { 
    String toParse = "xxx%ff"; 

    Matcher m = Pattern.compile("(.*)\\%([0-9a-fA-F]+)").matcher(toParse); 

    if(m.matches()) { 
     System.out.println("Matched 1=" + m.group(1) + ", 2=" + Integer.parseInt(m.group(2), 16)); 
    } 
} 
Смежные вопросы