2015-07-24 4 views
0

У меня есть одна строка ввода для программы, и мне нужно выполнить эту строку в моем методе, но я хочу выполнить ее, если символ String меньше или равен 20 символам, поэтому я хотите разбить эту строку на несколько строк, если строка длиннее 20 символов.
То есть, число символов входной строки составляет 90 символов, то становится 5 Строка 20 + 20 + 20 + 20 + 10 = 90.Разделить строку в зависимости от ее длины

мне нужно каждые 20 символов строк и последней строки сделать этот код:

try { 
      enMessage = AES.encrypt(key, message); 
      sendSMS(contact, enMessage); 
     } catch (Exception e) 

поэтому его можно сделать каждые 20 символов одним сообщением.

+1

Использование того, что вы Searchin для здесь показано: http://stackoverflow.com/questions/3481828/how-to-split-a-string-in-java – fbssn

ответ

0

Вы можете попробовать сделать ИНГ это:

package com.me; 

import java.util.*; 
import java.lang.*; 
import java.io.*; 

public class Test 
{ 
     public static List<String> splitMyString(String textValue, int textSize) {   
     ArrayList<String> myNewList= new ArrayList<String>((textValue.length() + textSize- 1)/textSize); 

     for (int start = 0; start < textValue.length(); start += textSize) { 
      myNewList.add(textValue.substring(start, Math.min(textValue.length(), start + textSize))); 
     } 
     System.out.println(myNewList.toString()); 
     return myNewList; 
    } 
    public static void main(String[] args) { 

     Test.splitMyString("1234546512312312312312365", 5); 

    } 
} 

Выход:

время Success: 0,1 Оперативная память: [12345, 46512, 31231, 23123, 12365 ]

+0

. Какая ошибка? – sTg

+0

извините, неверный комментарий. Я пытаюсь использовать этот код. – Viema

+0

Я только что обновил весь проверенный код и работал с выходом. – sTg

1

Вы можете использовать метод подстроки String, чтобы разделить строки, которые вы хотите.

Вы можете прочитать о том, как использовать его здесь

Java String Documentation

0

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

ArrayList<String> allstrings = new ArrayList<>(); 

if(inputstring.length() < 20) { 
    //no spliting 
} else { 
    //if 90 char than 90/20=4.5 
    float numberOfspliting = inputstring.length/20f; 

    for(int i = 0; i < numberofspliting; i++){ 
     String split = inputstring.substring(i * 20, i * 20 + 20); 
     allstrings.add(split); 
    } 
    //like 4.5-4=0.5 
    float leftcharacters = numberofspliting - (int)numberofspliting; 

    String lastsplit = inputstring.substring((int)numberofspliting * 20, (int)numberofspliting * 20 + leftcharacters * 20f); 

    allstrings.add(lastsplit); 

}//end if 
+0

все еще получает ошибку в lastsplit, и я не знаю, как это сделать, когда все строки хранятся в ArrayList. спасибо – Viema

1

Лучший пример такого кода, который я видел до сих пор на этом сайте:

public class StringSplitter { 

    /* regex was stolen from other stackoverflow answer*/ 
    public static void main(String[] args) { 
     for (String str : "123a4567a8sdfsdfsdgasfsdfsdgsdcvsdfdgdfsdf9".split("(?<=\\G.{20})")) 
      System.out.format("\'%s\'%n", str); 
    } 

} 
+0

, как заставить каждые 20 символов стать переменными .. потому что здесь каждые 20 символов будут даны методы. спасибо – Viema

+0

@Viema, в приведенном выше коде вы можете увидеть цикл for-each. Каждый новый объект String, состоящий из 20 или менее символов, хранится в переменной «str» –

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