Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将括号添加到字符串中的字符序列_Java_String_If Statement_Expression_Contains - Fatal编程技术网

Java 将括号添加到字符串中的字符序列

Java 将括号添加到字符串中的字符序列,java,string,if-statement,expression,contains,Java,String,If Statement,Expression,Contains,我需要将字符串中的一系列字符放在括号中,这样它就会选择最长的子字符串作为最佳的括号。要说清楚,因为它太复杂,无法用文字解释: 如果我的输入是: 'these are some chars *£&$' 'these are some chars *£&$^%(((£' 两个输入中的输出分别应为: 'these are some chars (*£&$)' 'these are some chars (*£&$^%)(((£' 所以我想把序列*&$^%放在括号里,

我需要将字符串中的一系列字符放在括号中,这样它就会选择最长的子字符串作为最佳的括号。要说清楚,因为它太复杂,无法用文字解释: 如果我的输入是:

'these are some chars *£&$'
'these are some chars *£&$^%(((£'
两个输入中的输出分别应为:

'these are some chars (*£&$)'
'these are some chars (*£&$^%)(((£'
所以我想把序列*&$^%放在括号里,如果它存在,否则就放在括号里*&$ 我希望这是有意义的

尝试类似的方法(假设目标字符串只出现一次)

尝试类似的方法(假设目标字符串只出现一次)

尝试类似的方法(假设目标字符串只出现一次)

尝试类似的方法(假设目标字符串只出现一次)


在一般情况下,此方法有效。它围绕任何给定字符串中任何关键字的最早子字符串:

public String bracketize() {
    String chars = ...; // you can put whatever input (such as 'these are some chars *£&$')
        String keyword = ...; // you can put whatever keyword (such as *£&$^%)
        String longest = "";
        for(int i=0;i<keyword.length()-1;i++) {
            for(int j=keyword.length(); j>i; j--) {
                String tempString = keyword.substring(i,j);
                if(chars.indexOf(tempString) != -1 && tempString.length()>longest.length()) {
                    longest = tempString;
                }
            }
        }
       if(longest.length() == 0)
           return chars; // no possible substring of keyword exists in chars, so just return chars
       String bracketized = chars.substring(0,chars.indexOf(longest))+"("+longest+")"+chars.substring(chars.indexOf(longest)+longest.length());
       return bracketized;
}
public String bracketize(){
String chars=…;//您可以输入任何内容(例如“这些是一些字符*£&$”)
字符串关键字=…;//您可以放置任何关键字(例如*£&$^%)
字符串最长=”;
对于(int i=0;ii;j--){
String tempString=关键字.substring(i,j);
if(chars.indexOf(tempString)!=-1&&tempString.length()>longest.length()){
最长=临时字符串;
}
}
}
if(最长.length()==0)
返回字符;//字符中不存在关键字的可能子字符串,所以只返回字符
括号中的字符串=chars.substring(0,chars.indexOf(longest))+“(“+longest+”)”+chars.substring(chars.indexOf(longest)+longest.length());
返回括号;
}
嵌套的
for
循环检查
关键字
的每个可能的子字符串,并选择较大的
字符串
字符
中包含的最长子字符串。例如,如果关键字是Dog,它将检查子字符串“Dog”、“Do”、“D”、“og”、“o”和“g”。它将这个可能最长的子字符串存储在
longest
(初始化为空字符串)中。如果检查每个子字符串后,
longest
的长度仍然为0,则在
chars
中找不到
关键字
的子字符串,因此返回原始字符串chars。否则,将返回一个新字符串
chars
,子字符串
最长
用括号(括号)括起来


希望这有帮助,让我知道它是否有效。

在一般情况下,这种方法有效。它围绕任何给定字符串中任何关键字的最早子字符串:

public String bracketize() {
    String chars = ...; // you can put whatever input (such as 'these are some chars *£&$')
        String keyword = ...; // you can put whatever keyword (such as *£&$^%)
        String longest = "";
        for(int i=0;i<keyword.length()-1;i++) {
            for(int j=keyword.length(); j>i; j--) {
                String tempString = keyword.substring(i,j);
                if(chars.indexOf(tempString) != -1 && tempString.length()>longest.length()) {
                    longest = tempString;
                }
            }
        }
       if(longest.length() == 0)
           return chars; // no possible substring of keyword exists in chars, so just return chars
       String bracketized = chars.substring(0,chars.indexOf(longest))+"("+longest+")"+chars.substring(chars.indexOf(longest)+longest.length());
       return bracketized;
}
public String bracketize(){
String chars=…;//您可以输入任何内容(例如“这些是一些字符*£&$”)
字符串关键字=…;//您可以放置任何关键字(例如*£&$^%)
字符串最长=”;
对于(int i=0;ii;j--){
String tempString=关键字.substring(i,j);
if(chars.indexOf(tempString)!=-1&&tempString.length()>longest.length()){
最长=临时字符串;
}
}
}
if(最长.length()==0)
返回字符;//字符中不存在关键字的可能子字符串,所以只返回字符
括号中的字符串=chars.substring(0,chars.indexOf(longest))+“(“+longest+”)”+chars.substring(chars.indexOf(longest)+longest.length());
返回括号;
}
嵌套的
for
循环检查
关键字
的每个可能的子字符串,并选择较大的
字符串
字符
中包含的最长子字符串。例如,如果关键字是Dog,它将检查子字符串“Dog”、“Do”、“D”、“og”、“o”和“g”。它将这个可能最长的子字符串存储在
longest
(初始化为空字符串)中。如果检查每个子字符串后,
longest
的长度仍然为0,则在
chars
中找不到
关键字
的子字符串,因此返回原始字符串chars。否则,将返回一个新字符串
chars
,子字符串
最长
用括号(括号)括起来


希望这有帮助,让我知道它是否有效。

在一般情况下,这种方法有效。它围绕任何给定字符串中任何关键字的最早子字符串:

public String bracketize() {
    String chars = ...; // you can put whatever input (such as 'these are some chars *£&$')
        String keyword = ...; // you can put whatever keyword (such as *£&$^%)
        String longest = "";
        for(int i=0;i<keyword.length()-1;i++) {
            for(int j=keyword.length(); j>i; j--) {
                String tempString = keyword.substring(i,j);
                if(chars.indexOf(tempString) != -1 && tempString.length()>longest.length()) {
                    longest = tempString;
                }
            }
        }
       if(longest.length() == 0)
           return chars; // no possible substring of keyword exists in chars, so just return chars
       String bracketized = chars.substring(0,chars.indexOf(longest))+"("+longest+")"+chars.substring(chars.indexOf(longest)+longest.length());
       return bracketized;
}
public String bracketize(){
String chars=…;//您可以输入任何内容(例如“这些是一些字符*£&$”)
字符串关键字=…;//您可以放置任何关键字(例如*£&$^%)
字符串最长=”;
对于(int i=0;ii;j--){
String tempString=关键字.substring(i,j);
if(chars.indexOf(tempString)!=-1&&tempString.length()>longest.length()){
最长=临时字符串;
}
}
}
if(最长.length()==0)
返回字符;//字符中不存在关键字的可能子字符串,所以只返回字符
括号中的字符串=chars.substring(0,chars.indexOf(longest))+“(“+longest+”)”+chars.substring(chars.indexOf(longest)+longest.length());
返回括号;
}
嵌套的
for
循环检查
关键字
的每个可能的子字符串,并选择较大的
字符串
字符
中包含的最长子字符串。例如,如果关键字是Dog,它将检查子字符串“Dog”、“Do”、“D”、“og”、“o”和“g”。它将这个可能最长的子字符串存储在
longest
(初始化为空字符串)中。如果检查每个子字符串后,
longest
的长度仍然为0,则在
chars
中找不到
关键字
的子字符串,因此返回原始字符串chars。否则,将返回一个新字符串
chars
,子字符串
最长
用括号(括号)括起来

希望这能帮上忙,如果需要请告诉我