重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
其实不需要用for循环,StringBuffer中已经提供了倒置的方法,貌似方法名也是叫reverse。
创新互联公司专注于银州网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供银州营销型网站建设,银州网站制作、银州网页设计、银州网站官网定制、微信小程序定制开发服务,打造银州网络公司原创品牌,更为您提供银州网站排名全网营销落地服务。
public static String reverse(String str2){
StringBuffer sb = new StringBuffer(str2);
return sb.reverse().toString();
}
扩展资料:
字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
参考资料来源:百度百科-字符串
替换字符串中的子字符串的代码如下:
/**
*
* 把字符串中的每个空格替换成%20.如We are happy,则输出We%20are%20happy
*
*/
public class ReplaceSpace {
public void repalce(char[] oldchar,char[] replacement){
int sumOfSpace = 0;
for(int i = 0;i oldchar.length;i++){
if(oldchar[i] == ' ')
sumOfSpace++;
}
if(sumOfSpace == 0){
return ;
}
char [] newchar = new char[oldchar.length + (replacement.length-1) * sumOfSpace];
//指向被替换字符串的最后一个元素
int pOld = oldchar.length - 1;
//指向替换字符串的最后一个元素
int pNew = newchar.length - 1;
while(pNew = 0){
if(oldchar[pOld] == ' '){
pOld--;
for(int j = replacement.length - 1;j = 0;j--){
newchar[pNew--] = replacement[j];
}
}else{
newchar[pNew--] = oldchar[pOld--];
}
}
for(char c:newchar){
System.out.print(c);
}
}
public static void main(String[] args) {
char [] ch = "We are happy".toCharArray();
ReplaceSpace rs = new ReplaceSpace();
rs.repalce(ch, "%20".toCharArray());
}
}
public class Reverse {
public static void main(String[] args) {
final String str = "to be or not to be";
final String[] array = str.split(" ");
for(String s:array){
final StringBuilder builder = new StringBuilder();
System.out.print(builder.append(s).reverse()+ " ");
}
}
}
在操作二维或三维的图形图像上,长期以来人们总结出了一些常用的变换矩阵,这些矩阵就像公式和定理一样被开发人员使用,楼主可以把这些矩阵当成公式来记忆,就像我们小时候背加法、乘法口诀一样。
如果楼主想了解得更深入一些,请往下看:
[ x'] [ m00 m01 m02 ] [ x ] [ m00x + m01y + m02 ]
[ y'] = [ m10 m11 m12 ] [ y ] = [ m10x + m11y + m12 ]
[ 1 ] [ 0 0 1 ] [ 1 ] [ 1 ]
上面的式子是jdk文档中复制过来的,就是变换时的运算过程,也就是说变换后的坐标x'、y'是由一个3*3的矩阵与原坐标x、y相乘得出的,其中的m00~m12就是AffineTransform构造方法中的六个参数,另外,式子中的最后一行是固定的。
矩阵乘法就不用说了吧,最后得出的结果就是上式中的最后一列,可能写成下面这样会更容易理解:
x' = m00x + m01y + m02
y' = m10x + m11y + m12
看出什么了吗?其实这就是二维平面直角坐标系中的两个很简单的二元一次方程而已,方程定义的就是横纵坐标变换的规则。
以水平翻转为例,水平翻转是以图形/图像的垂直中线为轴来翻转的,因此任何一个点(x,y)变换后的坐标应该是y坐标不变,x坐标变为-x+width-1,即(-x+width-1,y),之所以减1是因为垂直中轴上的点不应该改变。
理解了上面的变换过程之后,将结果带入上面的两个二元一次方程,可以得出
m00=-1、m01=0、m02=width-1
m10=0、m11=1、m12=0
正好是你给的代码中的六个值(AffineTransform构造方法中的参数顺序为m00、m10、m01、m11、m02、m12)
其他几个变换道理是一样的