其实有的时候真的是很佩服NET而鄙视JAVA,微软的东西都特别的人性化(当然不是说他封装的控件多么多么好啊,我一向讨厌别人封装),拿一个最简单的例子,字符串合并,在NET中可以这么实现:
String str=String.format("my name is {0}",renyanwei);
这样就可以把字符串给合并了,但是在JAVA中,虽然你可以利用printf语句实现
System.out.printf("my name is %s","renyanwei");
但是,我们大多数情况不止是为了输出用的啊,有的时候只是为了得到一个字符串来进行高级处理,像生成SQL乱七八糟的,JAVA实现起来就很不爽了,所以这里我写了个小方法,来实现C#中这个功能,来看具体代码
class TestFormat
{
public static void main(String[] args)
{
String str1=StringFormat.format("my name is {0}, my age is {1}","renyanwei",20);
String str2=StringFormat.format("I love {0}, you hate {0}","java");
System.out.println(str1);
System.out.println(str2);
// 输出
//my name is renyanwei, my age is 20
//I love java, you hate java
}
}
class StringFormat
{
//字符串合并方法,返回一个合并后的字符串
public static String format(String str,Object ... args)
{
//这里用于验证数据有效性
if(str==null||"".equals(str))
return "";
if(args.length==0)
{
return str;
}
/*
*如果用于生成SQL语句,这里用于在字符串前后加单引号
for(int i=0;i<args.length;i++)
{
String type="java.lang.String";
if(type.equals(args[i].getClass().getName()))
args[i]="'"+args[i]+"'";
}
*/
String result=str;
//这里的作用是只匹配{}里面是数字的子字符串
java.util.regex.Pattern p = java.util.regex.Pattern.compile("\\{(\\d+)\\}");
java.util.regex.Matcher m = p.matcher(str);
while(m.find())
{
//获取{}里面的数字作为匹配组的下标取值
int index=Integer.parseInt(m.group(1));
//这里得考虑数组越界问题,{1000}也能取到值么??
if(index<args.length)
{
//替换,以{}数字为下标,在参数数组中取值
result=result.replace(m.group(),args[index].toString());
}
}
return result;
}
}
这里正好复习了一下正则表达式和JAVASE5.0的新特性可变长参数Varargs
,具体用法是在参数类型和参数名之间使用"..."(三个英文的点)表示该参数是可以变长的,这个新特性真的是太TM好用了,说白了就是实现了动态数组!调用的时候你随便多少参数都成(注意类型必须相同),传到方法后自动给你生成个数组,然后你遍历数组就可以得到值了:
public static String format(String str,Object ... args)
看看程序是怎么调用的,多练习下就可以熟练使用这个新特性了,如果大牛还有更好的方法欢迎来共享下
分享到:
相关推荐
### Java字符串格式化String.format()详解 #### 一、引言 `String.format()` 方法是JDK 1.5引入的新特性,它提供了一种灵活且强大的方式来格式化字符串。这种方法类似于C语言中的`printf`函数,允许开发者通过指定...
在ASP.NET开发中,`String.Format`方法是一个非常实用的工具,它允许我们将变量或表达式的值插入到字符串模板中。然而,在使用过程中,如果模板中包含大括号({}),可能会遇到一些特殊的问题,因为大括号在`String....
在JDK1.5中,String类增加了一个非常有用的静态函数format(String format, Objece... argues),可以将各类数据格式化为字符串并输出。其中format参数指定了输出的格式,是最复杂也是最难掌握的一点,而argues则是一...
JAVA中的`String.format`方法是一种强大的工具,用于创建格式化的字符串。它允许用户按照指定的模式格式化输出,尤其在处理数字、字符、日期等数据类型时极为有用。接下来,我们将深入探讨`String.format`方法如何...
在Java编程语言中,`String.format()`方法是一个非常实用的工具,它允许程序员按照特定的格式来构造字符串。这个方法提供了强大的灵活性,可以方便地控制字符串中的数字、日期、时间等元素的显示方式。在本实例中,...
C# String.Format格式说明
在VB.NET编程中,处理数据时经常会遇到将字符串与二进制数据进行转换的情况。这是因为字符串是人类可读的数据表示形式,而二进制数据则更适用于存储和传输。了解如何在两者之间进行转换是至关重要的,特别是当你需要...
C# 拼接字符串的方式有多种,每种方式都有其优缺,今天我们将讨论三种常用的方式:简单“+=”拼接法、String.Format()和StringBuilder.Append()。 1. 简单“+=”拼接法 简单“+=”拼接法是最简单的拼接方式,但...
java 的 String.format() 的 Javascript 实现,增加了支持格式化百分比和后缀-SI,如 120M、30K。 将 Formatter.format() 移植到 javascript 的基本开始。 目前依赖 .toLocaleString() 进行命名日期格式。 请参阅...
Java中的`String.format()`方法是用于格式化字符串输出的一个强大工具。它允许程序员按照特定的模板格式化数据,包括数字、日期、时间和各种其他类型的对象。这个方法类似于.NET框架中的`System.String.Format()`...
JS 中的 string.format 函数代码是 JavaScript 中的一种格式化字符串的方法,该方法可以将变量的值插入到字符串中,从而生成一个完整的字符串。下面将详细介绍 JS 中的 string.format 函数代码的实现原理和应用场景...
`String.Format()`方法提供了更灵活的字符串格式化功能,它可以接受多个参数,并将它们按照指定的格式合并到一个字符串中。虽然比`+`运算符稍微高效,但在处理大量数据时,仍然会产生多个中间字符串,因此性能并...
发送JSON数据时,使用`StringContent`包装JSON字符串,设置合适的Content-Type;接收JSON数据时,使用`JsonConvert.DeserializeObject`将其转换为.NET对象。 4. **异步编程模型**: HttpClient的大部分方法都支持...
本资源“C#String.Format格式化输出.rar”主要关注C#中的字符串格式化功能,尤其是`String.Format`方法的使用。字符串格式化是编程中一个非常重要的概念,它允许我们将数据按照特定的模板或格式进行输出,方便读取和...
在Java中,我们可以使用多种库来实现HTTP通信,其中包括`com.sun.net.httpserver`包,这是一个内置的轻量级HTTP服务器,适用于测试、原型设计以及简单的应用。本示例将详细介绍如何使用`com.sun.net.httpserver`包...
在.NET 6中,开发人员可以利用`string.Create`方法来优化字符串创建和拼接的性能,这是一个在C# 9引入的新特性。这个方法允许我们更高效地创建字符串,尤其是在处理大量数据或者循环中的字符串操作时。下面将详细...
本文介绍了如何在JavaScript中实现一个格式化字符串的函数String.format,其主要功能是通过占位符的方式动态插入变量,同时解决了引号转义的问题,提高了代码的整洁性和可读性。 首先,问题的提出是在需要通过...
首先,`java.net.URL`类的构造器接受一个字符串参数,这个字符串是资源的完整URL地址。例如: ```java URL url = new URL("http://example.com/data.json"); ``` 创建URL对象后,我们可以调用`openConnection()`方法...