2015-06-06 3 views
0

В настоящее время код должен заменить все пробелы в строке на% 20. По большей части, я думаю, что логика правильная в методе, который я вызываю, но когда я хочу увидеть возвращенный результат, мой основной метод ничего не печатает - он печатает пробел для строки. Может ли кто-нибудь направить меня туда, где моя логика превращения массива в строку неверна? Спасибо за время и помощь. Я прикрепил свой код к методу на случай, если вам это понадобится. Извините, если ошибка тупая.Печать строки из массива символов?

public class replaceSpaces { 
public static void main(String[] args) { 
    char[] data = checkfor20("yo o"); 
    String text = String.valueOf(data); //turn char array into string representation 
    System.out.println(" new one: " + text); 
} 

private static char[] checkfor20(String string) { 
    int check = string.length(); //length of string 
    int spaceCount = 0, newLength; //count spaces and new length with %20 put in 
    char[] charstring = string.toCharArray(); // turn string into char array 
    for(int i = 0; i < check ; i++) { //get space count for newlenght 
     if (charstring[i] == ' ') { 
      spaceCount++; 
    } 
} 
    newLength = check + (spaceCount * 2); 
    char[] newArray = new char[newLength]; 
    for(int i = check - 1; i >= 0; i--) { 
     if(newArray[i] == ' ') { //get spaces and put it 
      newArray[newLength - 1 ] = '0'; 
      newArray[newLength - 2 ] = '2'; 
      newArray[newLength - 3 ] = '%'; 
      newLength = newLength - 3; 
     } 
     else { 
      newArray[newLength - 1] = charstring[i]; 
      newLength = newLength - 1; 

     } 

    } 
    return newArray; //return the new char array 

}} 

ответ

0

извиняется за ошибки с моей стороны, я должен был просто изменить массив в

if(charstring[i] == ' ') 

, а не новый массив я создал.

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