Member 12200805 Ответов: 1

Как сегментировать тамильские буквы с помощью java


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

(например) தமிழ்

он считается как 5..(то есть)"த", "ம", "ி", "ழ" и "்".
но я хочу считать его 3(то есть)"த"," மி " и "ழ்"

Что я уже пробовал:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;

public class ii {

public static void main(String[] args) {
    FileReader fr = null;
    BufferedReader br =null;
    FileWriter fw=null;
    BufferedWriter bw=null;

    String [] stringArray;
    int counLine = 0;
    int arrayLength ;
 String s="";
   String stringLine="";
 
   try{
        fr = new FileReader("F:\\New folder (2)\\N.txt");
        fw=new FileWriter("F:\\New folder (2)\\o.txt");
        br = new BufferedReader(fr);
        bw=new BufferedWriter(fw);
      while((s = br.readLine()) != null){
            stringLine = stringLine + s;
            stringLine = stringLine + " ";
            counLine ++;  
        }
        stringArray = stringLine.split(" ");
        arrayLength = stringArray.length;
    for (int i = 0; i < arrayLength; i++) {
            int c = 1 ;
            for (int j = i+1; j < arrayLength; j++) {
                if(stringArray[i].equalsIgnoreCase(stringArray[j])){
                   c++;
                   for (int j2 = j; j2 < arrayLength; j2++) 
                      {
                       }}
             int k;
              for(k=2;k==stringArray[i].length();i++)
              {
              bw.write(stringArray[i]);
               bw.newLine();
              
              }}} fr.close();
        br.close();
        bw.flush();
            bw.close();
    }catch (Exception e) {
        e.printStackTrace();
    }}}

1 Ответов

Рейтинг:
1

Patrice T

Цитата:
(например) தமிழ்

он считается как 5..(то есть)"த", "ம", "ி", "ழ" и "்".
но я хочу считать его 3(то есть)"த"," மி " и "ழ்"

Ваша проблема возникает из-за того, что некоторые символы состоят из более чем 1 символа.
Некоторые символы имеют sufix
ака "மி" - это ведущий символ "ம" и суффикса символ "ி".

Я не знаю вашего алфавита, но вместо того, чтобы читать символы 1 на 1, как с латинским алфавитом, вы должны определить, есть ли у символа суффикс или нет.
Либо вам нужен список всех комбинаций char+суффикс, либо вы должны проверить, следует ли за фактическим char суффикс char.

В любом случае вам нужно изменить свой код, чтобы справиться с ситуацией.

[Обновление]
Цитата:
да у меня есть возможные Буквы в строке

Строка s = "ஃஅஆஇஈஉஊஎஏஐஒஓஔக்ககாகிகீகுகூகெகேகைகொகோகௌங்ஙஙாஙிஙீஙுஙூஙெஙேஙைஙொஙோஙௌச்சசாசிசீசுசூசெசேசைசொசோசௌஞ்ஞஞாஞிஞீஞுஞூஞெஞேஞைஞொஞோஞௌட்டடாடிடீடுடூடெடே";

Затем вы должны проверить, есть ли в строке фактический символ и следующий.


Member 12200805

да у меня есть возможные Буквы в строке

Строка s = "ஃஅஆஇஈஉஊஎஏஐஒஓஔக்ககாகிகீகுகூகெகேகைகொகோகௌங்ஙஙாஙிஙீஙுஙூஙெஙேஙைஙொஙோஙௌச்சசாசிசீசுசூசெசேசைசொசோசௌஞ்ஞஞாஞிஞீஞுஞூஞெஞேஞைஞொஞோஞௌட்டடாடிடீடுடூடெடே";

Member 12200805

Хо, чтобы использовать эту строку кода

Patrice T

Посмотрите документацию по Java.
Существует строковая функция, которая говорит, находится ли маленькая строка внутри большой.
с VB имя INSTR