当前位置: 首页 > 知识库问答 >
问题:

使用特殊字符拆分并打印字符串值[已关闭]

漆雕彦
2023-03-14
public class SplitStringobj {
     public static void main(String[] args) {
     String val1= Start//complete//First//com//upload the dummy123//First//download; 
     String val2= First;
     String[] splitObject = outObject.split("//");
        for(String obj :splitObject) {
            if(outObject.startsWith(obj.toString());
             break;
    }
  }
}

因为我需要以下O/P

>

  • 列表项
    String val1=开始//完成//First//com//上传Dummy123//First//下载
    String val2=First
    输出=First//com//上传Dummy123//First//下载

    列表项
    字符串val1=开始//完成//首先//com//上载dummy123//首先//下载
    字符串val2=完成
    输出=完成//首先//com//上载dummy123//首先//下载

    列表项
    String val1=Start//complete//First//com//上载dummy123//First//下载
    String val2=com
    Output=com//上载dummy123//First//下载

  • 共有1个答案

    季博
    2023-03-14

    这是我的尝试。

    public static String first_match(String[] str, String toMatch) {
        boolean match = false;
        StringBuilder output = new StringBuilder();
    
        for (int i=0; i<str.length; i++) {
            if (str[i].equals(toMatch)) {
                match = true;
            }
            if (match){
                output.append(str[i]);
                if (i != str.length-1) { 
                    output.append("//"); 
                }
            }
        }
    
        return output.toString();
    }
    

    使用上述方法

    String val1 = "Start//complete//First//com//upload//First//download";
    String val2 = "First";
    String[] splitObject = val1.split("//");
    
    String out = first_match(splitObject, val2);
    System.out.println(out);
    

    它提供输出:

    First//com//upload//First//download
    

    编辑:
    我刚刚从评论中意识到,通过以下方式可以更轻松地完成:

    public static String firstMatch(String str, String toMatch) {
        int index = str.indexOf(toMatch);
        if (index == -1) return "";
        return str.substring(index);
    }
    
    String out1 = firstMatch(val1, val2);
    

    编辑2:
    这是另一种单行方式。

    val1.replaceFirst(".*?" + val2, val2)
    
     类似资料:
    • 我正在尝试拆分一个字符串并在某些print语句前面打印它的内容,但是我无法使用for循环来完成这件事。有人能帮忙吗? }

    • 如何将过滤器列表拆分为单个过滤器元件?split2String在线程“main”java.util.regex中导致:异常。PatternSyntaxException:索引10或(|和)附近的未闭合组(

    • 问题内容: 我想分裂字符串列,其中值 不等于 到 并保存到另一个表,这将是这样的: 这是我的分割字符串代码: 这是我用来调用该函数的代码: 上面的代码给我这个错误: 问题答案: 子查询返回了1个以上的值。当子查询遵循=,!=,<,<=,>,> =或将子查询用作表达式时,不允许这样做。该语句已终止。 由于您的子查询返回了多行,因此发生了上述错误。尝试执行以下操作: 您会看到它将返回3行,每一项返回一

    • 我想把一个有空格或任何特殊字符的句子分成一个单词数组,空格或特殊字符也是数组的一个元素。 句子像: 应拆分为字符串数组: 请建议使用任何正则表达式或逻辑来使用java进行拆分。 我的问题漏了一件事。我还需要拆分数字字符。。但是使用split(“\b”)并不能拆分具有以下内容的字符串: abc12def 成

    • 要转义这些字符,请在字符前面使用\。例如,要搜索(1+1):2,请使用以下查询: 为此,我使用方法: 我使用经典分析器是因为我注意到标准分析器在转义特殊字符方面存在一些问题。 null

    • 以下是我所做的: 我得到一个空数组。如果我从字符串中删除“、”和“”,它将给我一个带有['cocoa'、'tiger']的数组,这是我想要的实际输出。 我想得到输出 从绳子上 请帮我想出一个解决办法。提前谢谢。