String与StringBuffer

1、String类
String是比较特殊的数据类型,它不属于基本数据类型,但是可以直接赋值,不使用new关键字进行实例化,但是也可以使用关键字new进行实例化。下面的代码都是合法的:
String s1 = "this is a string!";
String s2 = new String("this is another string!");
另外String在使用的使用也不需要使用import语句导入,还可以使用“+”这样的运算符。如果想把字符串连接起来,可以使用“+”完成。例如:
s1+s2
String的一些常用方法我们通过一个例子来完成,下面是例子的代码:
package com.li.common;
public class StringTest {
/**
* @param args
*/
public static void main(String[] args) {
StringTest st = new StringTest();
st.testString();
}
/*
* 介绍String的常用方法
*/
public void testString(){
String str = "This is a test string!";
System.out.println("\n用于被测试的字符串为:"+str);
System.out.println("\n方法length()用于获取字符串的长度,被测试字符串的长度为:");
int length = str.length();
System.out.println(String.valueOf(length));
System.out.println("\n方法equals(Object o)用于判断该字符串是否与目标字符串的内容相同,与字符串\"test\"进行比较的结果为:");
boolean b = str.equals("test");
System.out.println(b?"相等":"不相等");
System.out.println("如果比较的时候不区分大小写,可以使用equalsIgnoreCase(Object o)方法,下面是\"test\"与\"Test\"比较的结果:");
b = "test".equalsIgnoreCase("Test");
System.out.println(b?"相等":"不相等");
System.out.println("\n获取字符串中某个位置的字符,可以使用charAt(int index)方法:");
char c = str.charAt(5);
System.out.println("\n测试字符串第5个位置的字符为:"+String.valueOf(c)+".注意索引从0开始");
System.out.println("\n获取子串的方法有两个:subString(int fromindex)和substring(int fromindex,int endindex)");
System.out.println("第一个方法获取从fromindex开始之后的子串,第二个方法获取从fromindex开始到endindex结束的子串,索引从0开始,包含fromindex,不包含endindex。");
String strSub = str.substring(3);
System.out.println("str.substring(3)的结果为:"+strSub);
strSub = str.substring(3,6);
System.out.println("str.substring(3,6)的结果为:"+strSub);
System.out.println("\n去除字符串前面或者后面的空格,可以使用trim()方法:");
System.out.println("字符串\"100 01 \"原来的长度为:"+"100 01 ".length()+"使用trim()方法之后的长度为:"+"100 01 ".trim().length());
printContent("\n\n判断一个字符在字符串中的位置,可以使用indexOf(int ch)和indexOf(int ch,int from)方法" +
",\n如果不存在返回0,第一个方法从字符串开头查找,第二个方法从form为置开始查找,包含该位置");
int index = str.indexOf('s');
printMethod("str.indexOf('s')");
printResult(String.valueOf(index));
index = str.indexOf('s',6);
printMethod("\nstr.indexOf('s',6)");
printResult(String.valueOf(index));
printContent("\n\n判断一个字符在字符串中的位置,可以使用indexOf(String str)和indexOf(String str,int from)方法" +
",\n如果不存在返回0,第一个方法从字符串开头查找,第二个方法从form为置开始查找,包含该位置");
index = str.indexOf("is");
printMethod("str.indexOf(\"is\")");
printResult(String.valueOf(index));
index = str.indexOf("is",3);
printMethod("\nstr.indexOf(\"is\",3)");
printResult(String.valueOf(index));
index = str.indexOf("is",7);
printMethod("\nstr.indexOf(\"is\",7)");
printResult(String.valueOf(index));
printContent("\n与indexOf方法相似,还有lastIndexOf方法,用法基本相同,不同的是开始查找的位置不同,一个从前,一个从后");
printContent("\n判断字符串是否以某个子串为后缀,使用endsWith(String str)");
b = str.endsWith("test");
printMethod("str.endsWith(\"test\")");
printResult(String.valueOf(b));
b = str.endsWith("string!");
printMethod("\nstr.endsWith(\"string!\")");
printResult(String.valueOf(b));
printContent("\n\n与endsWith方法功能相似,startWith(String prefix)和" +
"\nstartWith(String prefix,int toffset)用于判断是否以某个子串为前缀");
printContent("\n\n替换字符串中的字符,使用replace(char oldChar,char newChar)方法");
String str2 = str.replace('s','S');
printMethod("str.replace('s','S')");
printResult(str2);
printContent("\n\n替换字符串中的第一次出现的某个字串,使用replaceFirst(String oldStr,String newStr)方法");
str2 = str.replaceFirst("is","IS");
printMethod("str.replaceFirst(\"is\",\"IS\")");
printResult(str2);
printContent("\n\n替换字符串中的所有的出现的某个字串,使用replaceAll(String oldStr,String newStr)方法");
str2 = str.replaceAll("is","IS");
printMethod("str.replaceAll(\"is\",\"IS\")");
printResult(str2);
printContent("\n\n可以根据某个特定的格式把字符串分成多个子串,使用split方法," +
"\n使用的测试字符串为zhangsan-lisi-wangwu");
str2 = "zhangsan-lisi-wangwu";
String strSplit[] = str2.split("-");
printMethod("str.split(\"-\")");
for(int i=0;i<strSplit.length;i++)
printResult(strSplit[i]+" ");
}
/*
* 显示注释的内容
*/
public void printContent(String str){
System.out.println(str);
}
/*
* 显示代码
*/
public void printMethod(String str){
System.out.print(str);
for(int i=0;i<30-str.length();i++)
System.out.print(" ");
}
/*
* 显示结果
*/
public void printResult(String str){
System.out.print(str);
}
}
需要注意的是String本身是一个常量,一旦一个字符串创建了,它的内容是不能改变的,那么如何解释下面的代码:
s1+=s2;
这里并不是把字符串s2的内容添加到字符串s1的后面,而是新创建了一个字符串,内容是s1和s2的连接,然后把s1指向了新创建的这个字符串。如果一个字符串的内容经常需要变动,不应该使用String,因为在变化的过程中实际上是不断创建对象的过程。这时候应该使用StringBuffer。
2、StringBuffer
StringBuffer也是字符串,与String不同的是StringBuffer对象创建完之后可以修改内容。有几个构造函数:
public StringBuffer(int);
public StringBuffer(String);
public StringBuffer();
第一种构造函数是创建指定大小的字符串,第二个构造函数是以给定的字符串创建StringBuffer对象,第三个构造函数是默认的构造函数,生成一个空的字符串。
StringBuffer对象创建完之后,大小会随着内容的变化而变化。
StringBuffer的常用方法及其用法如下:
StringBuffer sb = new StringBuffer();
sb.append("字符串的第一部分");
/*append方法可以在字符串后面添加各种类型的数据,包括基本数据类型变量和其
他任意类型的对象*/
for (int i = 0; i < sb.length(); i++)
System.out.println(sb.charAt(i));
//length()方法用来获取字符串中字符的个数
//charAt(int)方法用来获取指定位置的字符
System.out.println(sb.length());
System.out.println(sb.capacity());
/*capacity()方法用来获取字符串的容量,当前的输出结果是"8 16",
通常是不相等的*/
System.out.println(sb.toString());
//toString方法把StringBuffer的内容转换成String对象
sb.delete(1, 3);
System.out.println(sb.toString());
/*
delete方法用于删除字符串中的部分字符,第一个参数是删除的第一个字符,第二
个参数是删除结束的地方,需要注意3点:字符串的第一个字符的索引"0",第一个
参数指定的字符会删除,但是第二个参数指定的字符不会删除,此处的运行结果是
"字符串的第一部分 字的第一部分"。
*/
sb.deleteCharAt(1);
System.out.println(sb.toString());
/*
deleteCharAt删除指定位置的字符,索引也是从零开始,此处的运行结果是"字第
一部分",把“的”删掉了
*/
String s3 = sb.substring(2);
String s4 = sb.substring(2,4);
System.out.println(s3);
System.out.println(s4);
/*
substring用于获取字符串的字串,第一个方法有一个参数,用于指定开始位置,获取的
字串是从该位置开始到字符串的结束,第二个方法有两个参数,第一个指定开始位置,第
二个指定结束位置,与delete方法中的参数用法基本相同,此处输出的结果为:"一部
分 一部"
3、String与基本数据类型之间的转换
不管采用什么方式,用户输入的数据都是以字符串的形式存在,但是在处理的过程中可能需要把输入信息作为数字或者字符来使用,另外不管信息以什么方式存储,最终都必须以字符串的形式展示给用户,所以需要各种数据类型与字符串类型之间的转换。
首先,基本数据类型与String类型对象之间的转换:
从字符串转换成其它类型:
//字符串与其基本数据类型之间的转换,以int为代表
//下面的代码把字符串转换成数字
String input = "111";
int i = Integer.parseInt(input);//比较常用
int i2 = new Integer(input).intValue();
int i3 = Integer.valueOf(input);
int i4 = new Integer(input);
//下面的代码把数字转换成字符串
String out = new Integer(i).toString();
String out2 = String.valueOf(i);
其它对象向字符串转换可以使用每个对象的toString()方法,所有对象都有toString()方法,如果该方法不满足要求,可以重新实现该方法。
Spring Boot 构建war 部署到tomcat下无法在Nacos中注册服务 因此,当使用外部容器时,如此处的 Tomcat 来部署项目,AbstractAutoServiceRegistration 就不能监听到容器启动事件了,也就不会尝试向服务注册中心注册当前这个微服务,那么注册就失败了,并且也就没有异常信息了。自定义获取获取外部容器端口的方法, 然后监听应用启动事件,当应用被启动时,获取外部容器启动的端口号,然后将这个 port 设置到 NacosAutoServiceReigistration 中。在启动类同级目录,复制下面代码即可(不需要修改,直接构建war即可) 阅读详情

相关推荐

运算放大器电路仿真实践:从零实现完整示例

通过一个完整的运算放大器电路仿真示例,深入掌握电路仿真的关键步骤与技巧,帮助电子爱好者和工程师快速上手实际项目设计。

weixin_34725745的博客 1320

StringBuffer替换空格

package algorithm; public class StringBufferTest { private static String replaceBf(StringBuffer bf) { // TODO Auto-generated method stub if(bf==null) return null; ...

zyzn1425077119的博客 943

Anthropic API接入指南:连接失败、403鉴权与Claude Code集成排查

在AI应用开发中,API接入与鉴权机制是开发者绕不开的基础工程问题。无论是调用云端模型服务还是自建网关,网络连通性、HTTP状态码语义、模型路由映射都会直接影响服务可用性。本文从通用的网络诊断与鉴权原理出发,梳理了从TCP连接失败到403权限拒绝的典型链路,并深入解析网关模型路由匹配机制。在此基础上,进一步说明如何通过环境变量完成Claude Code与VS Code的本地集成,以及一套基于Python的可复现接入方案。内容涵盖Anthropic API高频报错定位、curl冒烟测试、SDK工程化实践,适合

weixin_28743405的博客 469

用stringbuffer替换字符串的空格

用stringbuffer替换字符串的空格 问题: 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 思路: 注意题目是替换原来字符串 1.替换字符串2.先确定原字符串中空格数3.设置字符串长度4.从后往前遍历,进行替换 解答: public class Solution { ...

wusimin432503的博客 863

Hypermesh联合ABAQUS—Sets的建立和编辑

打开part copy对话框在对话框的最上面位置可以输入copy后的名称,然后将最下面的Separate disconnected regions into parts(将不连续的区域分割成parts)选项的前面方框勾选上。打开abaqus软件界面,File→import→model,将file filter选为inp格式,找到要导入的有限元文件,单击OK导入文件。HyperWorks新建Set时,会在Model Browser显示,打开Create Set对话框显示详细信息。快捷键,高亮set的内容。

动力资料屋的博客 1292

数字IC后端实战:OCC电路时钟树综合的5个关键技巧(附Synopsys工具配置)

本文深入探讨了数字IC后端设计中OCC电路时钟树综合的实战技巧。针对工具自动平衡导致的绕线拥塞和时序问题,文章提出了分段处理的核心思路,并详细阐述了通过物理隔离、分段长树策略以及Synopsys工具链(如ICC2、PrimeTime)的精准配置来优化function clk与occ clk路径的关键方法,旨在提升时序收敛性和可制造性。

jwt8token的博客 858

Android JAVA中去掉字符串空格的方法

1. String.trim()      trim()是去掉首尾空格             2.str.replace(" ", ""); 去掉所有空格,包括首尾、中间      String str = " hell o ";   String str2 = str.replaceAll(" ", "");   System.out.println(str2);    

haozidao的专栏 1万+

芋道前后端分离项目跳过登录

在此页面中可以看到当在没有获取到token时,如果此页面在白名单中则直接进入,所以我们将刚刚配置在。在此路径下配置需要跳过登录的页面路径,记住path中编辑的名称。根据以上两图可以发现芋道的。将所有需要跳过登录的方法。,否则会提示登录状态过期。至此完成免登录进入页面。

FanZaiYo的博客 5486

java 显示删除空格后_Java中如何修剪删除StringBuffer中的空格(空白)

Java.lang包的String类表示一组字符。 Java程序中的所有字符串文字(如“abc”)都实现为该类的实例。 String对象是不可变的,一旦您创建了String对象,您就不能更改它们的值,如果您尝试这样做而不是更改值,则会创建一个具有所需值的新对象,并且引用将转移到新创建的对象,而不使用前一个对象。如果需要对String进行大量修改,则使用StringBuffer(和StringBui...

weixin_34963576的博客 863

阿里云百炼全解析:一站式大模型开发平台的架构与行业实践

摘要: 阿里云百炼平台通过一站式架构革新大模型开发范式,将传统碎片化工具链整合为统一工作流,实现开发周期从月级到小时级的跃迁。其核心架构包含接入层、引擎层与资源层,关键技术突破包括MCP服务协议、多模态引擎及高性能训练优化。平台提供全生命周期开发支持,从数据准备到模型部署,并通过VPC隔离、数据加密构建企业级安全体系。已在医疗、电力等行业实现显著增效,如阿斯利康药物分析系统准确率提升至95%。未来将向多Agent协同、边缘计算等方向演进,推动AI技术深度融入产业核心。

fudaihb的博客 1991

String与StringBuffer的区别

String与StringBuffer的区别简单地说,就是一个变量和常量的关系。StringBuffer对象的内容可以修改;而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。String:在String类中没有用来改变已有字

Eterno的专栏 18万+

【AI编程】Trae 环境搭建与配置从使用到项目实战详解

Trae 环境搭建与配置从使用到项目实战详解

congge 5652

String、Stringbuilder与Stringbuffer的区别,String、Stringbuilder与Stringbuffer的适用场景

没循环情况下用String的加号拼接,有循环情况下使用StringBuilder,任何场景都不推荐使用StringBuffer。

weixin_68472181的博客 1651

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

String 和StringBuffer的区别

2.String:在String类中没有用来改变已有字符串中的某个字符的方法,由于不能改变一个java字符串中的某个单独字符,所以在JDK文档中称String类的对象是不可改变的。1.StringBuffer:StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。上面的代码效率很高,因为只创建了一个StringBuffer对象,而下面的代码效率很低,因为创建了101个对象。

m0_73784167的博客 3233

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

String跟StringBuffer的区别

区别一:在Java中字符串使用String类进行表示,但是String类表示字符串有一个最大的问题:“字符串常量一旦声明则不可改变,而字符串对象可以改变,但是改变的是其内存地址的指向。”所以String类不适合于频繁修改的字符串操作上,所以在这种情况下,往往可以使用StringBuffer类,即StringBuffer类方便用户进行内容修改, 区别二:在String类中使用“+”作为数据的连接操作,而在StringBuffer类中使用append()方法(方法定义:public StringBuffer a

qq_48987056的博客 1561

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

深入String、StringBuffer、String 实例化有两种方式、String、StringBuffer常用方法

深入String、StringBuffer、String 实例化有两种方式、String、StringBuffer常用方法

hutao8896的博客 1113

Java中String与StringBuffer的相互转换!

/* 为什么我们要讲解类之间的转换: A—B的转换 我们把A转换为B,其实是为了使用B的功能。 B—A转换 我们可能要的结果是A类型,所以还得转回来。 String和StringBuffer的相互转换 */ public class StringBufferTest { public static void main(String[] args) { //String --- Stri...

不会下雨的云的博客 3360

java String 与 StringBuffer

一 String 是 常量定义并赋值后不可再改变。 StringBuffer 是 变量 (缓存)可以改变。StringBuffer类和String类一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,所以在内存使用上,StringBuffer类要优于String类。 例:String public class Test5{ public static void main(String[] ...

ljk的博客 902

String、StringBuffer、StringBuilder的区别

String 类实现了 CharSequence 接口。字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。需要注意的是,String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且大量浪费有限的内存空间。我们来看一下这张对String操作时内存变化的图:我们可以看到,初始String值为“hello”,然后在这个字符串后面加上新的字符串“world”,这个过程是需要重新在栈堆内存中开辟

weixin_50687701的博客 1067

String和StringBuffer的比较

相同点: 它们都可以存储和操作字符串 不同点: 1.String类提供了数值不可改变的字符串,修改的只是它的一个副本    StringBuffer类可以对本身的对象进行修改 String s1 = new String("123"); String s2 = s1; s1 = s1.concat("456"); System.out.println(s1); System.ou

AlwenZwei的博客 1536

String和StringBuffer相互转换

1、String类特有方法,比如:valueOf()、getBytes()等。 2、StringBuffer类特有方法,比如:拼接append、插入insert、删除delete、反转reverse等。 3、String >>> StringBuffer:a.构造方法:new StringBuffer(String s) b.append(String s)。 4、StringBuffer >>> String:a.构造方法:new String(StringBuffer s) b.toString()。

weixin_40017062的博客 1万+

String与StringBuffer类

String类的缺点:不可改变 在String类中字符串的连接用“+”,但是在StringBuffer类中用的是append()方法。 public StringBuffer append(数据类型 b); String和StringBuffer最大的区别: String的内容无法修改,而StringBuffer的内容可以修改。 注: 但是在开发中优先使用的还是String,只有在循环中重复改变字...

weixin_41550144的博客 361

String和StringBuffer的区别

在java开发中我们经常会使用到String和StringBuffer对字符串的操作。 下面我们来说一下String和StringBuffer的区别: 一:     其实简单的来说一个是变量,一个是常量。StringBuffer对象的内容能可以修改,然而String对象一旦产生后就不可以被修改,重新赋值就变成了两个对象。 StringBuffer的内部实现方式和String不同,Strin

DCBTB的博客 1万+
下一篇: 网页之间共享值
Java_Web_Book
博客等级 码龄18年 8粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值