Code Bye

java 截取字符串

1.值不是固定的

例如:String str=”1.02.03″;  我要的值为:1.02
      如果 str=”1.02″;       我要的值为:1

就是字符串中有两个小数点
if(小数点等于2)
   我要的为第二次小数点前面的
if(小数点等于2)
   我要的为第三次小数点前面的

请问一下,这样的值怎么截取啊?

	public static void main(String[] args) {
		//String str = "1.02.03";
		String str = "1.02";
		String[] strs = str.split("\.");
		if(strs.length  == 3){
			System.out.println(strs[0] + "." + strs[1]);
		}
		if(strs.length == 2){
			System.out.println(strs[0]);
		}
	}
描述不懂,两个if条件一样
在Ibatis中我们使用SqlMap进行Sql查询时需要引用参数,在参数引用中遇到的符号#和$之间的区分为,#可以进行与编译,进行类型匹配,而$不进行数据类型匹配,例如: 

select * from table where id = #id# ,其中如果字段id为字符型,那么#id#表示的就是””id””类型,如果id为整型,那么#id#就是id类型。 

select * from table where id = $id$ ,如果字段id为整型,Sql语句就不会出错,但是如果字段id为字符型,那么Sql语句应该写成 select * from table where id = “”$id$””

我擦…回复错帖子了..

40分
String str=”1.02.03″;  
str.subString(0, str.lastIndex(“.”));
取最后小数点位置
你这是根据小数点来判断的str.index(“.”)取第一个字符串出现的位置str.lastindex(“.”)取最后一次字符串出现的位置
String Str = “1.01.02”;
str.subString(0,str.lastindex(“.”)-1);
引用 5 楼 yanghongjy 的回复:

String str=”1.02.03″;  
str.subString(0, str.lastIndex(“.”));
取最后小数点位置

楼上正解

5楼和6楼有一个是对的

public static void main(String[] args) {
		String str = "12.123.321";
		//第一种方法:
		if(str.indexOf(".")==str.lastIndexOf(".")){
			str = str.substring(0, str.indexOf("."));
			System.out.println(str);
		}else{
			str = str.substring(0, str.lastIndexOf("."));
			System.out.println(str);
		}
		//第二种方法:
		String str2 = "12.123.321";
		if(str2.split("\.").length==2){
			str2 = str2.split("\.")[0];
			System.out.println(str2);
		}else{
			str2 = str2.substring(0, str2.lastIndexOf("."));
			System.out.println(str2);
		}
	}

引用 1 楼 longtian1213 的回复:
	public static void main(String[] args) {
		//String str = "1.02.03";
		String str = "1.02";
		String[] strs = str.split("\.");
		if(strs.length  == 3){
			System.out.println(strs[0] + "." + strs[1]);
		}
		if(strs.length == 2){
			System.out.println(strs[0]);
		}
	}

这个正解


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明java 截取字符串