scala小程序代码块
1.随机生成数字
//这个是定长的,6位
object Test { def main(args: Array[String]) { var i = 0 while (i < 1000) { var str = scala.util.Random.nextInt(1000000).toString i = i + 1 println(str.substring(0,6-str.length)+str) println(str.length) } } }
另一种类似补齐的方式
//java代码块
public static String Complement(String busNo) { //预先定义一个6位0 StringBuilder zero =new StringBuilder("000000"); String result = zero.substring(0, zero.length() - busNo.length()) + busNo; return result; }
1.静态代码块
//java代码块
public static Configuration conf; public static Connection conn; static { conf = HBaseConfiguration.create(); conf.set("hbase.zookeeper.property.clientPort", "2181"); conf.set("hbase.zookeeper.quorum", "192.168.113.12,192.168.113.13,192.168.113.14"); try { conn = ConnectionFactory.createConnection(conf); } catch (IOException e) { e.printStackTrace(); } } //如果需要可以在别的方法或main里使用配置 table = new HTable(conf, tableName);
2.将传入的字符串反转的函数
//java代码块
//将传入的日期参数转换成rowkey的反转 public static String Fdate(String s) { char[] array = s.toCharArray(); String reverse = ""; //倒叙拿出 for (int i = array.length - 1; i >= 0; i--) reverse += array[i]; return reverse; }
//在main里这样调用使用
String startDate= "11308102";
String startRowkey = Fdate(startDate);
2.秒,分钟随机数
object Test { def main(args: Array[String]) { var i = 0 while (i < 1000) { i = i + 1 //小时 val xx=(Math.random()*14+10) val xs=xx.formatted("%.0f") //小数点后面的不要,如果保留一位改为:formatted("%.1f") println(xs) //分钟 val ff=(Math.random()*49+10) //打印的结果是10-59,没有一位数。如果想要带一位数改为这个:val a=(Math.random()*59) val fz=ff.formatted("%.0f") // println(fz) //秒钟 val mm=(Math.random()*49+10) val mz=mm.formatted("%.0f") // println(mz) // println("20180906"+xs+fz+mz) } } }
3.字符串补零
object Test { def main(args: Array[String]) { var i = 0 while (i < 100) { i = i + 1 val ff=(Math.random()*999+1) var fz=ff.formatted("%.0f") while(fz.length()==2) fz= "0"+fz while(fz.length()==1) fz = "00"+fz println(fz) } } }
4.两个数字换位置
val buf="" def swap(il:Int,i2:Int){ val tmp=buf(i1) buf(i1)=buf(i2) buf(i2)=tmp }
5.只生成0或1值
object Test { def main(args: Array[String]) { var i = 0 while (i < 1000) { i = i + 1 val ff=(Math.random()*1) var fz=ff.formatted("%.0f") println(fz) } } }
6.类型转换
var name = 1
1. name.toDouble
使用toDouble、toInt等方法,对象名.to方法可以实现简单的数据类型转换。
2.name.doubleValue
可以使用doubleValue、longValue、intValue三种方法,用于简单的数据类型转换。
3.Integer.valueOf(name)
可将整型或者字符串型转换为Integer型。
4.String.valueOf(name)
可将任一类型数据转换为字符串类型(包括字符数组)
更为复杂具体的转换,需自定义转换类型及方法,使用占位符对数据集中所有元素进行指定的方式转换。
7.获取的字符串判断是否全是数字
var pattern = Pattern.compile("[0-9]*") if(pattern.matcher(machno3).matches()&&(!machno3.isEmpty)&&(!machno3.equals(" "))){}
另一种简单直接方式
if(machno3.isInstanceOf[Int]){}
8.查询是否有值
def booleanCount(connection: Connection,countSql:String,lineNo:String,Updown:Int,labelNo:Int):Boolean={ var flag=false var pst=connection.prepareStatement(countSql) try{ pst.setString(1,lineNo) pst.setInt(2,Updown) pst.setInt(3,labelNo) var rs: ResultSet = pst.executeQuery() if(rs.next()){ var count=rs.getInt("count(*)") if(count>0){ flag=true } } rs.close() }finally{ pst.close() } flag }
9.spark sql传入参数
def dataformat(nn: String) : DataFrame ={ val sql = s""" select MACH_NO MACHNO,REG_TIME REGTIME,LINE_NO LINENO,BUS_NO BUSNO from TM_MACH_RUN_INFO where |MACH_NO='${nn}' |""".stripMargin var frame = sqlContext.sql(sql) var a = frame return a }
                    
                
                
            
        
浙公网安备 33010602011771号