我想将一个字符串拆分成一系列子字符串以适合我的数据库,其中我的数据库varchar大小为50.如果在切割原始字符串时最多50个字符,那么我需要包括尾部,(逗号)用那个字符串。例如,
我原来的字符串 - [test,datttaaa,testinnggg,proggrrammmm,stringsOpsss,anottttaation,springgmvc,test,data]
将原始字符串剪切为50个字符,它将是 [test,datttaaa,testinnggg,proggrrammmm,strings 这里子字符串是字符串和我想把它剪掉直到尾随,(逗号)。所以我将这个块分配给 [test,datttaaa,testinnggg,proggrrammmm,
现在用剩余的块替换原始字符串, stringsOpsss,anottttaation,springgmvc,test,data] 重复上述过程,我的输出将如下所示,
[test,datttaaa,testinnggg,proggrrammmm,
stringsOpsss,anottttaation,springgmvc,test,
数据]
因此将有3个db插入行。写了一个程序,
Route::post('create', 'ProductController@insert')->name('product.create');
<form class="container" action="{{ route('product.create') }}"
id="needs-validation" method="post" novalidate>
是否有比上述方法更好的方法或我们可以用来简化的任何替代API?
答案 0 :(得分:0)
你的方法看起来不错。我不知道任何图书馆能够更好地解决这个问题或者让它变得更容易。
答案 1 :(得分:0)
试试这个(未经测试但应该有效)
public static void main(String[] s) {
String str = " test, datttaaa, testinnggg, proggrrammmm, stringsOpsss, anottttaation, springgmvc, test, data";
String[] strArray = str.split(",");
List<String> outputArray = new ArrayList<String>();
stringUpTo50Length( Arrays.asList(strArray), outputArray, "");
for(String s1:outputArray) {
System.out.println(s1);
}
}
public static void stringUpTo50Length(List<String> strInputArray, List<String> strOutputArray, String outString) {
for (int i=0; i<strInputArray.size(); i++ ) {
if (outString.length() + strInputArray.get(i).length() <=50) {
outString= outString + "," + strInputArray.get(i);
} else {
strOutputArray.add(outString.substring(1));
outString = "";
stringUpTo50Length(strInputArray.subList(i, strInputArray.size()), strOutputArray, outString);
break;
}
}
if (outString.equals("")==false) {
strOutputArray.add(outString.substring(1));
outString="";
}
}