【发布时间】:2014-03-13 12:17:45
【问题描述】:
我刚刚用 C# 编写了我的程序,但我想用 Java 重写它。我想创建 spintax 文本。
我的 C# 代码:
static string spintax(Random rnd, string str)
{
// Loop over string until all patterns exhausted.
string pattern = "{[^{}]*}";
Match m = Regex.Match(str, pattern);
while (m.Success)
{
// Get random choice and replace pattern match.
string seg = str.Substring(m.Index + 1, m.Length - 2);
string[] choices = seg.Split('|');
str = str.Substring(0, m.Index) + choices[rnd.Next(choices.Length)] + str.Substring(m.Index + m.Length);
m = Regex.Match(str, pattern);
}
// Return the modified string.
return str;
}
我已将代码更新为
static String Spintax(Random rnd,String str)
{
String pat = "\\{[^{}]*\\}";
Pattern ma;
ma = Pattern.compile(pat);
Matcher mat = ma.matcher(str);
while(mat.find())
{
String segono = str.substring(mat.start() + 1,mat.end() - 1);
String[] choies = segono.split("\\|",-1);
str = str.substring(0, mat.start()) + choies[rnd.nextInt(choies.length)].toString() + str.substring(mat.start()+mat.group().length());
mat = ma.matcher(str);
}
return str;
}
像魅力一样工作 :D 感谢大家的支持..
【问题讨论】:
-
来自维基百科:大多数使用旋转内容被认为是黑帽 SEO 垃圾邮件做法。这是因为大多数旋转内容是通过自动化方法产生的,并且被认为是人类不可读的。此类内容仅可用于纯粹用于 SEO 的非编辑网站上的大量发布;根据定义,垃圾邮件。
-
我的客户要求该功能:(
-
好的。只是想提一下:o)