Сделайте пробелы одинаковыми в двух строках - PullRequest
0 голосов
/ 07 февраля 2011

У меня есть файл с множеством двух пар строк, а именно двуязычный файл.В некоторых записях строки назначения не содержат номер пробела, равный src после ":"

Например,

src= Job %1$s: Bad record length at tape record number / block number: %2$s adddd: %3$s
tgt= Travail %1$s : longueur d'enregistrement incorrecte dans le numéro d'enregistrement / de bloc :%2$s de la bande adddd: %3$s.

Мне нужно, чтобы :%2$s было : %2$s

Есть идеи?

Ответы [ 2 ]

1 голос
/ 07 февраля 2011

Это должно помочь вам начать:

import java.util.regex.*;

public class Test {

    public static void main(String[] args) {

        String src = "abc :  def";   // two spaces after colon.
        String tgt = "ghi :   jkl";  // three spaces after colon.

        Pattern spaces = Pattern.compile("([^:]*:)(\\s*)(.*)");

        Matcher mSrc = spaces.matcher(src);
        Matcher mTgt = spaces.matcher(tgt);

        mSrc.matches();
        mTgt.matches();

        System.out.println("Spaces in src: " + mSrc.group(2).length());
        System.out.println("Spaces in tgt: " + mTgt.group(2).length());

        System.out.println("Target with src's number of spaces: " +
                           mTgt.group(1) + mSrc.group(2) + mTgt.group(3));
    }
}

Печать:

Spaces in src: 2
Spaces in tgt: 3
Target with src's number of spaces: ghi :  jkl
1 голос
/ 07 февраля 2011

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

src = src.replaceAll(":%", ": %")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...