第一次发帖求助啊,小弟求各位高手了,帮忙解救

xcr1982 2008-03-26 08:25:07
那位仁兄帮忙给吧一个程序的思路简单描述一下呀?求助。。。。。,题目内容是:

简化文字串
* String TrimSentence( String src )
将原串src中的所有多余空白符(空格,tab,回车等)去掉后,结果就在目标串dst中;引号中的空白符不能去掉,并要考虑引号中的转义字符;两个单词数字之间的多个空白符变成1个空格,单词与符号之间的空白符去掉;假定写入字符的空间已由调用者分配足够。

SELECT \r\n a1, " \"a bc \t" as a2\r FROM c\rWHERE ( a3 = 5 AND a2>1 )
应变成
SELECT a1," \"a bc \t"as a2 FROM c WHERE(a3=5 AND a2>1)
...全文
95 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chen09 2008-03-28
  • 打赏
  • 举报
回复
public class TrimSentence {
final static char[] charsTrim = { '\n', '\b', '\r', '\f', '\'', '\"' };
final static char[] charsTrimC = { 'n', 'b', 'r', 'f', '\'', '\"' };

final static char space = ' ';
final static char slash = '\\';
final static char quotation = '"';

public static void main(String[] args) {

String str = "SELECT \r\n a1, \" \\\"a bc \\t\" as a2\r FROM c\rWHERE ( a3 = 5 AND a2>1 ) ";

System.out.println(trimSentence(str));

}

public static String trimSentence(String str) {
StringBuffer sb = new StringBuffer();
char[] charsSrc = new char[str.length()];
str.getChars(0, str.length(), charsSrc, 0);
boolean spaceFlg = false;
boolean slashFlg = false;
boolean quotationFlg = false;

for (int i = 0; i < charsSrc.length; i++) {
char ch1 = charsSrc[i];
switch (charsSrc[i]) {
case slash:
slashFlg = true;
spaceFlg = false;
if (quotationFlg)
sb.append(slash);
break;
case quotation:
if (!slashFlg) {
quotationFlg = !quotationFlg;
}
if (isSpaceDelete(sb, charsSrc[i]))
sb.deleteCharAt(sb.length() - 1);
sb.append(charsSrc[i]);
slashFlg = false;
spaceFlg = false;
break;

case space:
if (!spaceFlg) {
sb.append(charsSrc[i]);
spaceFlg = true;
}
break;

default:
if (quotationFlg) {
if (isCharsTrim(charsSrc[i])) {
sb.append(slash);
sb.append(getConveredChar(charsSrc[i]));
} else
sb.append(charsSrc[i]);
} else if (isCharsTrim(charsSrc[i])) {
charsSrc[i] = space;
i--;
continue;
} else {
if (isSpaceDelete(sb, charsSrc[i]))
sb.deleteCharAt(sb.length() - 1);
sb.append(charsSrc[i]);
}
slashFlg = false;
spaceFlg = false;
break;
}
}

return sb.toString();
}

private static boolean isCharsTrim(char ch) {
for (int i = 0; i < charsTrim.length; i++)
if (ch == charsTrim[i])
return true;
return false;
}

private static char getConveredChar(char ch) {
int i;
for (i = 0; i < charsTrim.length; i++)
if (ch == charsTrim[i])
return charsTrimC[i];
return ch;
}

private static boolean isSpaceDelete(StringBuffer sb, char ch) {
if (sb.length() <= 1)
return false;
if (sb.charAt(sb.length() - 1) != space)
return false;
return !((Character.isLetter(sb.charAt(sb.length() - 2)) || Character
.isDigit(sb.charAt(sb.length() - 2))) && (Character
.isLetter(ch) || Character.isDigit(ch)));
}

}

输出:
SELECT a1," \"a bc \t"as a2 FROM c WHERE(a3=5 AND a2>1)
xcr1982 2008-03-26
  • 打赏
  • 举报
回复
多谢关注,能不能帮忙解决呀?
ooo19841080xinxin 2008-03-26
  • 打赏
  • 举报
回复
关注
内容概要:本文围绕“基于鲁棒优化与KKT条件的微电网经济调度方法研究”展开,提出了一种适用于不确定性环境下的微电网两阶段鲁棒优化调度模型。通过引入鲁棒优化理论,增强系统对风光出力波动、负荷变化等不确定因素的适应能力,并结合KKT(Karush-Kuhn-Tucker)条件对优化问题进行数学建模与解,确保各类运行约束的有效满足。研究采用Python编程实现完整的算法流程,涵盖模型构建、变量定义、约束处理及解器调用,实现了运行成本最小化与系统稳定性的协调优化。该方法具有较强的工程适用性和理论深度,属于高水平科研复现工作,可用于EI级别期刊论文的算法验证与案例分析。; 适合人群:具备电力系统基础知识和Python编程能力,从事微电网优化、可再生能源调度、鲁棒优化与智能算法研究的研究生、科研人员及工程技术开发者。; 使用场景及目标:①构建并解微电网两阶段鲁棒优化调度模型,提升系统在不确定性下的经济性与可靠性;②支撑高水平学术论文(如EI期刊)的算法复现与结果验证,强化研究工作的严谨性与可重复性;③为含高比例可再生能源的电力系统提供科学、高效的经济调度解决方案。; 阅读建议:建议读者结合YALMIP、Pyomo等优化建模工具与Python解环境,动手实践代码实现过程,重点关注KKT条件的转化逻辑、列约束生成(C&CG)算法的迭代机制以及鲁棒不确定集的建模方式,同时参考提供的网盘资源获取完整代码与测试案例数据,以深化对整体方法的理解与应用。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧