2014-09-15 3 views
1

Это работает? Я пытаюсь напечатать сообщение в этом.Строка/массив в Java

char[] tempMessage = message.toCharArray();  
    String[] message2 = message.split(" ");   
    Integer.toString(number).toCharArray(); 
    for(int x = 0; x<newMessage.length; x++) 
    { 

    } 
+1

как следует обрабатывать пунктуацию? Если «Привет, мир!» выход «H5w5» или «h6w7»? Возможно, мы должны расщепляться на границах слов, а не на белом. – Andreas

ответ

2

Хотя его лучше использовать StringBuilder, я могу показать его с помощью String (ов).

String[] strArr = "hello world".split("\\s+"); 
String s = String.valueOf(strArr[0].charAt(0))+strArr[0].length()+String.valueOf(strArr[1].charAt(0))+strArr[1].length(); 

Output : h5w5 
1
String[] message2 = message.split("\\s+"); 
String output = ""; 
for(int i = 0; i < message2.length; i++) 
{ 
    output += "" + message2[i].charAt(0) + message2[i].length(); 
} 
//output has output string. 
1

решение TheLostMind является уже хорошо, но я думаю, что это нужно решение для строк произвольной длины.

String outputString = ""; 
for(String x : message.split("\\s+")) 
{ 
    outputString = outputString.concat(x.charAt(0) + x.length()); 
} 

Как указано в комментариях, это решение очень похоже на решение brso05. Разница заключается в использовании: -Operator в for-loop. Это короче, и ИМХО легче понять, так как он говорит «для каждой строки в результирующем массиве».
Кроме того, использование функции concat() считается более безопасным в моей рабочей среде.

+0

Уже есть решение посмотреть на мой – brso05

+0

@ brso05 Извините, начал печатать, прежде чем вы отправили. Тем не менее, он отличается от вашего и нуждается в одной линии меньше. – EarlGrey