"); "> "); "> "); " />

Java-те split () әдісі нүктеде жұмыс істемейді (.)

Мен қате бөлімді веб-қосымшалардан бөліп алу үшін қарапайым код үзіндісін дайындадым.

public class Main {

    public static void main(String[] args) throws IOException {
        System.out.print("\nEnter a string:->");
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String temp = br.readLine();

        String words[] = temp.split(".");

        for (int i = 0; i < words.length; i++) {
            System.out.println(words[i] + "\n");
        }
    }
}

JSF веб-қосымшасын құру кезінде оны тексердім. Мен жоғарыда келтірілген кодта temp.split («.») неге жұмыс істемейтінін білгім келеді. Өтініш,

System.out.println(words[i]+"\n"); 

консольде ештеңе көрсетілмейді, бұл цикл арқылы өтпейді. temp.split() әдісінің дәлелін басқа белгілерге ауыстырған кезде, ол әдеттегідей жақсы жұмыс істейді. Мәселе қандай болуы мүмкін?

152
Yikes, ол әдепкі параметрлерді Java жүйесінде тұрақты өрнектерге?
қосылды автор Kirk Woll, көзі
Оны құтқарыңыз. Сплит регистрде жұмыс істейді
қосылды автор Romain Hippeau, көзі

7 жауаптар

java.lang.String.split splits on regular expressions, and . in a regular expression means "any character".

temp.split («\\.») әрекетін орындап көріңіз.

375
қосылды
Бұл мен үшін де жұмыс істеді. Мен үшін «|» ол «\\ |» жұмыс істеді. Рахмет
қосылды автор Bhupinder, көзі
рахмет. ол жақсы жұмыс істейді
қосылды автор Ashu Kumar, көзі

Құжаттар бойынша < code> split() жазады:

Осы жолды берілген

  • тұрақты өрнек .

  • (Көңіл аудару шахтасы).

    Нүкте - тұрақты өрнек синтаксисіндегі ерекше таңба. < кодты бөліп алу үшін параметрдегі (>) Pattern.quote() параметрін таңдаңыз:

    String[] words = temp.split(Pattern.quote("."));
    
    56
    қосылды
    керемет жауап ... Бұл жақсы жауап болуы керек.
    қосылды автор santu, көзі
    Оның Pattern.quote-ды әрдайым пайдалану керек
    қосылды автор user1999397, көзі

    Әдіс тұрақты емес өрнекпен емес, жолды білдіреді және нүкте тұрақты өрнектерде ерекше мәнге ие. Оны split («\\.») сияқты құтқарыңыз. Сізге екі жақты қиғаш сызық қажет, екіншісі біріншіден қашып кетеді.

    10
    қосылды

    Тырысу:

    String words[]=temp.split("\\.");
    

    Бұл әдіс:

    String[] split(String regex) 
    

    «.» regex ішіндегі сақталған код

    9
    қосылды

    \\. is the simple answer. Here is simple code for your help.

    while (line != null) {
       //            
        String[] words = line.split("\\.");
        wr = "";
        mean = "";
        if (words.length > 2) {
            wr = words[0] + words[1];
            mean = words[2];
    
        } else {
            wr = words[0];
            mean = words[1];
        }
    }
    
    5
    қосылды
        private String temp = "mahesh.hiren.darshan";
    
        String s_temp[] = temp.split("[.]");
    
      Log.e("1", ""+s_temp[0]);
    
    2
    қосылды

    Бұл жақсы жұмыс істейді. Сіз туралы оқыдыңыз ба құжаттама ? Жол тұрақты өрнек түрлендіріледі.

    . is the special character matching all input characters.

    Кез-келген тұрақты өрнектегі арнайы таңбалар сияқты, сіз \ қашып құтыласыз. Java жолының құтылуына қосымша \ керек.

    2
    қосылды