命名方式的互转(蛇形和驼峰形)——java

参数的命名方式:

一. 蛇形法

 蛇形法是全由小写字母和下划线组成,在两个单词之间用下滑线连接即可,

 例如:first_name、last_name。

二. 驼峰法

 骆驼式命名法就是当变量名或函式名是由一个或多个单词连结在一起,而构成的唯一识别字时,

 第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母,

 例如:firstName、lastName,

 这样的变量名看上去就像骆驼峰一样此起彼伏。

 

代码实现两者之间转换:

 例如:输入要转换几个命名参数

            输入: 2

                        last_name

                        firstName

            输出: lastName 

                        first_name

​public class stringText {
 
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int num = scanner.nextInt();
		
		String str[] = new String[num];
		for(int i=0 ;i<num; i++){
			Scanner scanner1 = new Scanner(System.in);
            str[i] = scanner1.nextLine();
          
		}
		for(int i=0 ;i<num; i++){
            if(str[i].contains("_")){
            	
            	System.out.println(toLineString(str[i]));
            	
            }else {
            	
            	System.out.println(toHumpString(str[i]));
			}
            
         }
	}
	
	//驼峰形转蛇形
	public static String toLineString(String string) {
		
		StringBuilder stringBuilder = new StringBuilder();
		
		String[] str = string.split("_");
		
		for (String string2 : str) {
		
			if(stringBuilder.length()==0){
			
				stringBuilder.append(string2);
		     }else {
				stringBuilder.append(string2.substring(0, 1).toUpperCase());
				
				stringBuilder.append(string2.substring(1));
				
			}
		}
		
		return stringBuilder.toString();
		
	}
	
	
	//蛇形转驼峰形
	public static String toHumpString(String string) {
		
		StringBuilder sb = new StringBuilder(string);
		
		int temp = 0;
		for(int i=0 ;i<string.length() ; i++){
			if(Character.isUpperCase(string.charAt(i))){
				sb.insert(i+temp,"_");
				temp+=1;
			}
		}
		return sb.toString().toLowerCase();
		
	}
}

​

                        

                       

 

 

 

 

 

                        

 

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 Rust 中,可以使用 serde 库来进行 JSON 的序列化和反序列化。而 serde 提供了一个 feature 叫做 `serde_with`,可以方便地进行蛇形驼峰。 首先需要在 Cargo.toml 中添加以下依赖: ```toml serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" serde_with = { version = "1.9", features = ["serde_json"] } ``` 然后定义一个 struct,使用 `#[serde(rename_all = "xxx")]` 属性来指定字段名的方式。其中,`xxx` 可以是 `snake_case`、`camelCase`、`PascalCase` 等。 ```rust use serde::{Deserialize, Serialize}; use serde_with::serde_as; #[derive(Debug, Deserialize, Serialize)] struct User { #[serde(rename = "id")] user_id: i32, #[serde(rename = "userName")] user_name: String, #[serde(rename = "createdAt")] #[serde_as(as = "DateTime<Local>", rename = "createdAt")] created_at: DateTime<Local>, } ``` 在上面的例子中,`user_id` 和 `user_name` 使用了 `rename` 属性来分别指定了换后的字段名,`created_at` 使用了 `serde_as` 来指定了字段名和数据类型的方式。 如果要将 JSON 字符串换为 struct,可以使用 `serde_json::from_str` 方法: ```rust use serde_json::from_str; let json_str = r#"{ "id": 1, "userName": "Alice", "createdAt": "2021-01-01T00:00:00+08:00" }"#; let user: User = from_str(json_str).unwrap(); println!("{:?}", user); ``` 如果要将 struct 换为 JSON 字符串,可以使用 `serde_json::to_string` 方法: ```rust use serde_json::to_string; let user = User { user_id: 1, user_name: "Alice".to_owned(), created_at: Local::now(), }; let json_str = to_string(&user).unwrap(); println!("{}", json_str); ``` 在输出的 JSON 字符串中,字段名就会按照指定的方式进行换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值