我试图把单词分成音节,但是我的语言(Setswana)中的那种音节.在元音之后每次出现音节,例如在"motho"(意思是人)中,音节是"mo"和"tho".它们被元音分开,因此识别元音是一个主要关键
我需要一个代码来识别一个元音并分割一个单词的一部分,1个每个可用的单元...这是我到目前为止所拥有的:
public void syllable(String word)
{
int i=0;
int z=0;
for (i=i;i<word.length()-1; i++){
char w = word.charAt(i);
String w1=Character.toString(w);
if(w=='a'|| w=='e' || w=='i' || w=='o' || w=='u')
{
String[] x= word.split(w1,2);
System.out.println(Arrays.toString(x));
//z=i;
continue;
}
continue;
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个复杂的正则表达式概念,但您想要做的是使用积极的后视作为分割:
String[] syllables = word.split("(?<=[aeiou])");
Run Code Online (Sandbox Code Playgroud)
对我来说,这产生:
public static void main(String[] args) {
for (String word : new String[]{"Motho", "Botswana"}) {
System.out.println("Word " + word + " Syllables "
+ Arrays.toString(word.split("(?<=[aeiou])")));
}
}
Run Code Online (Sandbox Code Playgroud)
并输出:
Word Motho Syllables [Mo, tho]
Word Botswana Syllables [Bo, tswa, na]
Run Code Online (Sandbox Code Playgroud)
更新:关于拆分,使用积极的后视:这个正则表达式教程比我在这里做的更好.
Java Pattern文档详细介绍,但您需要零宽度正面lookbehind
| 归档时间: |
|
| 查看次数: |
1954 次 |
| 最近记录: |