我想在 java 中获得最高的可用字符串值,我该如何实现这一点。
示例:你好 jameswangfron
我想得到最高的字符串“jameswangfron”
String Text = request.getParameter("你好 jameswangfron");
请编码示例。
也许这会更容易理解
public class HelloWorld {
public static void main(String[] args) {
System.out.println(StringManipulator.getMaxLengthString("hello jameswangfron", " "));
}
}
class StringManipulator{
public static String getMaxLengthString(String data, String separator){
String[] stringArray = data.split(separator);
String toReturn = "";
int maxLengthSoFar = 0;
for (String string : stringArray) {
if(string.length()>maxLengthSoFar){
maxLengthSoFar = string.length();
toReturn = string;
}
}
return toReturn;
}
}
但是有一个问题!如果你注意 String 类的 split 方法,你会发现 spliter 实际上是一个正则表达式。对于您的代码,我看到您想要分隔单词(这意味着空格)。如果要搜索整个文本,则必须传递正则表达式。
这里有一个提示。如果你想让你的单词用“”、“.”、“”分隔(你明白了),那么你应该用以下内容替换 getMaxLengthString 方法中的“”
"[^a-zA-Z0-9]"
如果你想用数字分割单词,只需输入
"[^a-zA-Z]"
这告诉我们,我们将分隔符用作任何不是小写字母或大写字母的东西。(^ 字符表示您不想要括号 [] 中列出的字符)
这是另一种方法
"[^\\w]"
\w 它实际上表示单词字符。所以如果你否定这个(用^)你应该没问题
public class HelloWorld{
public static void main(String []args){
String text = "hello jameswangfron";
String[] textArray = text.split(" ");
String biggestString = "";
for(int i=0; i<textArray.length; i++){
if(i==0) {
textArray[i].length();
biggestString = textArray[i];
} else {
if(textArray[i].length()>textArray[i-1].length()){
biggestString = textArray[i];
}
}
}
System.out.println("Biggest String : "+biggestString);
}
}
它显示输出为
Biggest String : jameswangfron