2015-05-02 2 views
0

Я хочу удалить последнюю запятую из строки. Я попытался сделать это:android Я хочу заменить вторую последнюю запятую на «и»?

int endIndex = frnd.lastIndexOf(","); 
if (endIndex != -1) { 
    frnd = frnd.substring(0, endIndex); 
} 

и заменив второй последнюю запятую «и»

+0

использовать метод замены для него. –

+0

но как ?? я пробовал все мои вещи ... –

ответ

1

Друг String будет иметь желаемый результат.

String frnd1 = ""; 
String frnd2 = ""; 
String frnd3 = ""; 
int endIndex = frnd.lastIndexOf(","); 
if (endIndex != -1) { 
    frnd1 = frnd.substring(0, endIndex); 
    frnd2 = frnd.substring(endIndex); 
    int endIndex1 = frnd1.lastIndexOf(","); 
    if (endIndex1 != -1) { 
     frnd3 = frnd1.substring(0, endIndex1) + " and" + frnd1.substring(endIndex1+1);; 
     frnd = frnd3 + frnd2; 
     System.out.println(frnd3 + frnd2);      
    } 
} 
+0

его добавлено наконец ... но я хочу добавить до последнего элемента в свою запятую отдельную строку. –

+0

Ой, мой плохой. Итак, у frnd1 есть строка, на которой вы можете сделать то же самое. Я отредактировал свой ответ. Подождите – Msk

+0

@NikPastagia проверить результат сейчас после редактирования – Msk

0

Проверьте ниже небольшой пример.

String test="abc,d,"; 

int endIndex = test.lastIndexOf(","); 

if (endIndex != -1) { 

test = test.substring(0, endIndex); 

if(test.contains(",")) 

{ 

System.out.println(test); 

String replacedstring=test.replace(",","and"); 

System.out.println(replacedstring); 

} 

} 
+0

, но заменит ли он и в исходной строке? – Msk

+0

Нет, он не заменит исходную строку. В результате вы получите новую строку. –

+0

Но ему нужна вся строка справа ;-) – Msk

0

Это простое решение:

int lastIndx = yourWord.lastIndexOf(","); // last inedx of ',' 

    if(lastIndx != -1){ 
     int secondLast = yourWord.lastIndexOf(",", lastIndx -1); // second last index of ',' 
     if (secondLast != -1){ 
      result = yourWord.substring(0, secondLast) + "and" + yourWord.substring(secondLast +1) ;  
     } 
} 

результат является выход вам нужно

+0

The и требуется на втором последнем месте, а не на последнем ;-) – Msk

+0

исправлено уже –

+0

вы тоже правы .. но добавлено запятая в конце ... –

0

Первая попытка удалить последний comma, а затем попытаться заменить второй последний comma с and.

String frnd="abcde,fghi,jklmn,nopq"; 
if (frnd.lastIndexOf(",") != -1) { 
    frnd = frnd.substring(0, frnd.lastIndexOf(",")) + frnd.substring(frnd.lastIndexOf(",") + 1, frnd.length()); 
    if (frnd.lastIndexOf(",") != -1) { 
     frnd = frnd.substring(0, frnd.lastIndexOf(",")) + "and" + frnd.substring(frnd.lastIndexOf(",") + 1, frnd.length()); 
    } 
} 

Toast.makeText(this,frnd,Toast.LENGTH_LONG).show(); 
+0

Я получил мои сообщения от @Msk ... спасибо за краткий ... –

0

Если кто-то ищет что-то вроде этого вход: Нью-Йорк, Лас-Вегас, Нью-Дели, Мумбаи Выход: Нью-Йорк, Лас-Вегас, Нью-Дели и Мумбаи.

Тогда это работает

public String formatString(String inputString) 
{ 
    String firstOccurance = ""; 
    String secondOccurance = ""; 
    String thirdOccurance = ""; 
    String formattedString=""; 
    String matcher1=","; 
    String matcher2=", "; 
    String matcher3=" ,"; 

    inputString=inputString.replaceAll(", $", ""); 
    inputString=inputString.replaceAll(" ,$", ""); 
    inputString=inputString.replaceAll(" ,$", ""); 
    inputString=inputString.replaceAll(".$", ""); 
    inputString=inputString.replaceAll(" .$", ""); 
    inputString=inputString.replaceAll(". $", ""); 

    int endIndex = inputString.lastIndexOf(matcher1); 

    if(endIndex==-1) 
     endIndex = inputString.lastIndexOf(matcher2); 
    if(endIndex==-1) 
     endIndex = inputString.lastIndexOf(matcher3); 
    if (endIndex != -1) { 
     firstOccurance = inputString.substring(0, endIndex); 
     secondOccurance = inputString.substring(endIndex); 
     int endIndex1 = secondOccurance.lastIndexOf(matcher1); 
     if(endIndex1==-1) 
      endIndex1 = secondOccurance.lastIndexOf(matcher2); 
     if(endIndex1==-1) 
      endIndex1 = secondOccurance.lastIndexOf(matcher3); 

     if (endIndex1 != -1) { 
      thirdOccurance = firstOccurance + " and " + secondOccurance.substring(endIndex1+1)+"."; 
      formattedString =thirdOccurance;// thirdOccurance + secondOccurance; 
      System.out.println(thirdOccurance + secondOccurance);  
     } 
    } 


    return !formattedString.isEmpty()?formattedString:inputString; 
} 
Смежные вопросы