在线等~~~~~~~~~~String的问题

1988_1989 2011-09-30 01:18:41
参数
AND_ThalassemiaGeneTest_TGTAlphaBehind__3.7α
或者是:
AND_ThalassemiaGeneTest_TGTAlphaBehind__ _SEA



想要把参数拆分为:AND ThalassemiaGeneTest TGTAlphaBehind _3.7α
AND ThalassemiaGeneTest TGTAlphaBehind _ _SEA
...全文
245 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
bohe_198878 2011-09-30
  • 打赏
  • 举报
回复
你指谁啊 这里这么多人 我XXXXXXXXX
打油的程序员 2011-09-30
  • 打赏
  • 举报
回复
还是写一个吧,不管对你是否有用


static String[] getResult(String src){
String[] result = new String[4];
int pre = 0;
for(int i=0; i<3; i++){
int index = src.indexOf("_",pre);
result[i] = src.substring(pre,index);
pre = index+1;
}
result[3] = src.substring(pre);
return result;
}
1988_1989 2011-09-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ioe_gaoyong 的回复:]

看看这个满足你的要求么,不过你还需要再加上一些异常处理
Java code


import java.util.Arrays;

/**
* Created by IntelliJ IDEA.
* User: Administrator
* Date: 2011-9-30
* Time: 13:25:53
* To change this template use File | ……
[/Quote]


问题解决了,正解,正解,,谢谢啦,,,国庆节快乐啊,祝你有个愉快的假期。O(∩_∩)O~
bohe_198878 2011-09-30
  • 打赏
  • 举报
回复
楼主你看这样怎么样
String str="AND_ThalassemiaGeneTest_TGTAlphaBehind_BJFKD";
String s1=str.substring(0,str.lastIndexOf("_"));
String s2=str.substring(str.lastIndexOf("_")+1,str.length());
String[] arr=s1.split("_");
arr=Arrays.copyOf(arr,arr.length+1);
arr[arr.length]=s2;
for(String s:arr){
System.out.println(s);
}
风尘中国 2011-09-30
  • 打赏
  • 举报
回复
看看这个满足你的要求么,不过你还需要再加上一些异常处理


import java.util.Arrays;

/**
* Created by IntelliJ IDEA.
* User: Administrator
* Date: 2011-9-30
* Time: 13:25:53
* To change this template use File | Settings | File Templates.
*/
public class StringHandler {
public static String[] splitYourStr(String str){
String[] yourWant=new String[4];
String connect="_";
int a=str.indexOf(connect);
int b=str.indexOf(connect,a+1);
int c=str.indexOf(connect,b+1);

yourWant[0]=str.substring(0,a);
yourWant[1]=str.substring(a+1,b);
yourWant[2]=str.substring(b+1,c);
yourWant[3]=str.substring(c+1);

System.out.println(Arrays.toString(yourWant));
return yourWant;
}
public static void main(String[] args){
String str="AND_ThalassemiaGeneTest_TGTAlphaBehind__3.7α";
// String str="AND_ThalassemiaGeneTest_TGTAlphaBehind__ _SEA";
String[] r=splitYourStr(str);
System.out.println(Arrays.toString(r));


}
}


[Quote=引用 5 楼 zhuni_xingfu 的回复:]
引用 3 楼 k3108001263 的回复:

引用 2 楼 zhuni_xingfu 的回复:
现在我要得到一个数组:arr:[AND, ThalassemiaGeneTest, TGTAlphaBehind, _3.7α]
从中得到:
连接符:arr[0]
表名:arr[1]
字段名:arr[2]
字段值:arr[3]
用于数据库查询的。。。

Java code

……
[/Quote]
1988_1989 2011-09-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 kiss601459202 的回复:]

引用 5 楼 zhuni_xingfu 的回复:

引用 3 楼 k3108001263 的回复:

引用 2 楼 zhuni_xingfu 的回复:
现在我要得到一个数组:arr:[AND, ThalassemiaGeneTest, TGTAlphaBehind, _3.7α]
从中得到:
连接符:arr[0]
表名:arr[1]
字段名:arr[2]
字段值:arr[3]……
[/Quote]


如果参数是:AND_ThalassemiaGeneTest_TGTAlphaBehind_8J_dld
其中8J_dld是用户的输入的值,
这样正则表达式不通用了啊

打油的程序员 2011-09-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhuni_xingfu 的回复:]

引用 3 楼 k3108001263 的回复:
上面的两个参数要使用同一个方法,进行拆分,,,,不能一个参数,写一个拆分方法,用户可以输入任意形式的字符串,传过来的参数还可能是 AND_ThalassemiaGeneTest_TGTAlphaBehind_BJFKD
或者AND_ThalassemiaGeneTest_TGTAlphaBehind_8Jdld
等等,
要使用一个通用的方法,进行拆分,

[/Quote]

你给多几组数据还是不够特殊,或者说你没考虑全面。

你那几组数据压根不需用正则。使用indexOf() 和 SubString() 都可以对付了
bohe_198878 2011-09-30
  • 打赏
  • 举报
回复
先截取到最后一个_,然后split("_")得到数组,进行数组扩容把最后的字符串加进去
kiss601459202 2011-09-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhuni_xingfu 的回复:]

引用 3 楼 k3108001263 的回复:

引用 2 楼 zhuni_xingfu 的回复:
现在我要得到一个数组:arr:[AND, ThalassemiaGeneTest, TGTAlphaBehind, _3.7α]
从中得到:
连接符:arr[0]
表名:arr[1]
字段名:arr[2]
字段值:arr[3]
用于数据库查询的。。。

Java code
……
[/Quote]

用正则

for example

public static void getNum(String str) {
System.out.println(str.replaceAll("[a-zA-Z0-9]_", " "));
for (String s : str.split("[a-zA-Z0-9]_")) {
System.out.println(s);
}
}
1988_1989 2011-09-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 k3108001263 的回复:]

引用 2 楼 zhuni_xingfu 的回复:
现在我要得到一个数组:arr:[AND, ThalassemiaGeneTest, TGTAlphaBehind, _3.7α]
从中得到:
连接符:arr[0]
表名:arr[1]
字段名:arr[2]
字段值:arr[3]
用于数据库查询的。。。

Java code

String resulString = "AND_……
[/Quote]



上面的两个参数要使用同一个方法,进行拆分,,,,不能一个参数,写一个拆分方法,用户可以输入任意形式的字符串,传过来的参数还可能是 AND_ThalassemiaGeneTest_TGTAlphaBehind_BJFKD
或者AND_ThalassemiaGeneTest_TGTAlphaBehind_8Jdld
等等,
要使用一个通用的方法,进行拆分,
打油的程序员 2011-09-30
  • 打赏
  • 举报
回复
上面的只能处理特殊情况 你给多些数据。我帮你找找规律,用正则帮你解决
打油的程序员 2011-09-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhuni_xingfu 的回复:]
现在我要得到一个数组:arr:[AND, ThalassemiaGeneTest, TGTAlphaBehind, _3.7α]
从中得到:
连接符:arr[0]
表名:arr[1]
字段名:arr[2]
字段值:arr[3]
用于数据库查询的。。。
[/Quote]

String resulString = "AND_ThalassemiaGeneTest_TGTAlphaBehind__3.7α".replaceFirst("_ThalassemiaGeneTest_TGTAlphaBehind_"," ThalassemiaGeneTest TGTAlphaBehind ");
;;
String arr[] = resulString.split(" ");
for(String s : arr){
System.out.println(s);
}
1988_1989 2011-09-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 k3108001263 的回复:]

Java code

System.out.println("AND_ThalassemiaGeneTest_TGTAlphaBehind__3.7α".replaceFirst("_ThalassemiaGeneTest_TGTAlphaBehind_"," ThalassemiaGeneTest TGTAlphaBehind "));
System.out.println("AND……
[/Quote]


现在我要得到一个数组:arr:[AND, ThalassemiaGeneTest, TGTAlphaBehind, _3.7α]
从中得到:
连接符:arr[0]
表名:arr[1]
字段名:arr[2]
字段值:arr[3]
用于数据库查询的。。。
打油的程序员 2011-09-30
  • 打赏
  • 举报
回复

System.out.println("AND_ThalassemiaGeneTest_TGTAlphaBehind__3.7α".replaceFirst("_ThalassemiaGeneTest_TGTAlphaBehind_"," ThalassemiaGeneTest TGTAlphaBehind "));
System.out.println("AND_ThalassemiaGeneTest_TGTAlphaBehind__ _SEA".replaceFirst("_ThalassemiaGeneTest_TGTAlphaBehind_"," ThalassemiaGeneTest TGTAlphaBehind "));



【项目介绍】 基于C、C++和ffmpeg编写的trt_yolov8推理模块源码+使用说明(拉流解码输入、支持cuda硬件解码).zip 先创建一个trt_infer实例 ~~~c++ std::string model_path = "/root/trt_projects/infer-main/workspace/yolov8n.transd.engine"; std::shared_ptr> trt_instance; trt_instance = std::make_shared>(); trt_instance->start([&]{ return yolo::load(model_path_seg, yolo::Type::V8Seg);} ,max_batch_size ); ~~~ 创建流水线中的异步执行节点 ~~~c++ // ffmpeg解码节点 auto ffmpeg_input_node = FFmpeg::create_ffmpeg("ffmpeg_input_node", stream_url); // trt推理节点 auto trt_node = std::make_shared("trt_node"); // 结果渲染节点 auto trt_draw_node = std::make_shared("trt_draw_node"); // 推流输出节点 auto ffmpeg_output_node = std::make_shared("ffmpeg_output_node"); ~~~ 将trt实例放入trt_node中,这里的trt_node就是充当一个生产者节点和trt实例(消费者)的桥梁,保证我们多路时的数据在指定的线程中运行的 ~~~c++ trt_node->set_trt_instance(trt_instance); ~~~ 将各个节点串联起来,并且启动 ~~~c++ Base::LinkNode(ffmpeg_input_node, trt_node); Base::LinkNode(trt_node, trt_draw_node); Base::LinkNode(trt_draw_node, ffmpeg_output_node); trt_draw_node->Start(); ffmpeg_output_node->Start(); trt_node->Start(); ffmpeg_input_node->Start(); // 节点只要在同一时间启动不用关注启动顺序,但极端情况下可以选择从后往前一次启动 ~~~ 【备注】 1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载食用体验! 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时沟通。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈!

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧