JSP学习笔记(四十二):java中多行字符串格式化的小工具

最近遇到这样的问题:写的sql语句一般都比较长,为了方便看到sql的结构,一般是分成多行显示,找了半天,没找到类似C#中利用@号可以多行显示的功能。

实在是不想改成一行,一种折中的方式就是使用StringBuffer来拼这个字符串,一行行的拼,比较麻烦,而且容易出错,自力更生,用javascript写了一个小应用,分享给有同样需要的朋友:)

 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>小应用:Java多行内容转换</title>
<style type="text/css">
td
{
font-size
:14px;
}

</style>
<script language="javascript" type="text/javascript">
function ChangeIt()
{
var prev = "";
var current = "";

var strContent = document.getElementById("strContent").value;
var strArray = strContent.split(navigator.appName=="Netscape"?"\n":"\r\n");
var strName = document.getElementById("strName").value;
var newContent = "StringBuffer " + strName + " = new StringBuffer();";
for(var i=0;i<strArray.length;i++)
{
if(strArray[i].replace(" ","").replace("\t","")!="")
{
newContent
+= "\r\n";
newContent
+= strName + ".append(\"";

current = strArray[i].charAt(0);
if(/\w/.test(current) && /\w/.test(prev)) newContent +=
" ";

newContent += strArray[i] +
"\");";

prev
= strArray[i].charAt(strArray[i].length-1);
}
}

document.getElementById(
"newContent").value = newContent;

if(document.getElementById("clip").checked)
{
window.clipboardData.clearData();
window.clipboardData.setData(
"Text",newContent);
}
}
</script>
</head>

<body>
<table border="1" bgcolor="#E8E4D9" bordercolor="#A37C5C" style="border-collapse: collapse"
width
="100%" cellpadding="2" cellspacing="0">
<tr height="30">
<td width="180" bgcolor="#D6CEB9">变量名称:</td>
<td id="p1Result"><input type="text" id="strName" value="sql">
<input type="checkbox" id="clip" value="1" checked><label for="clip">转换后直接复制到剪贴板</label></td>
</tr>
<tr height="30">
<td width="180" bgcolor="#D6CEB9">
原始字符串:
</td>
<td id="p2Result"><textarea cols="80" rows="12" id="strContent"></textarea></td>
</tr>
<tr height="30">
<td colspan="2" align="center">
<input type="button" name="Button2" value="开始转换" onClick="ChangeIt()" style="width:100px;"></td>
</tr>
</table>
<br>
<table border="1" bgcolor="#E8E4D9" bordercolor="#A37C5C" style="border-collapse: collapse"
width
="100%" cellpadding="2" cellspacing="0">
<tr height="30">
<td width="180" bgcolor="#D6CEB9">
转换后内容:
</td>
<td id="p1Result"><textarea id="newContent" cols="80" rows="12" onMouseOver="this.select()"></textarea> </td>
</tr>
</table>
</body>
</html>

 

直接把代码copy到本机保存成html网页,就可以直接使用了。

posted @ 2008-09-12 00:22  魔豆  阅读(2796)  评论(0编辑  收藏  举报