【java - String类】教程文章相关的互联网学习教程文章

java – String类中的子串方法到达不应该的索引【代码】

参见英文答案 > Why is “out of range” not thrown for ‘substring(startIndex, endIndex)’ 6个如果标题不清楚,我道歉. 现在,在字符串索引从0开始.例如:Index 0 1 2 3 4 String H E L L O在这种情况下,最后一个索引是4. 如果我想尝试做这样的事情:System.out.println("hello".charAt(5));它应该抛出一个“超出界限的索引”. 但是,如果我尝试运行以下代码:System.o...

java – 当使用va_arg传递char *时,在JNI中将char *转换为jstring【代码】

是否有必要将char *转换为jbyteArray,然后调用java String的构造函数来生成jstring?怎么办呢?请帮忙.static int testhandler(void *arg, ...){int i;struct callback *cb = (struct callback *)arg;JNIEnv *env = cb->env;char *sig = cb->signature;jint size = (jint) strlen(sig);jint size1;va_list arguments;jobjectArray return_array;jclass obj_class;jbyteArray bytes;jstring str;obj_class = (*env)->FindClass(env,...

java – 如何使用putStringArrayListExtra()传递ArrayList【代码】

嗨,我想将一个Arraylist从一个活动传递到另一个活动.我使用putStringArrayListExtra(),但是显示错误:“方法putStringArrayListExtra(字符串,ArrayList未定义类型包.”是否有任何其他方法可用于传递ArrayList?String test[]=new String[3]; ArrayList<String[]> al=new ArrayList<String[]>(); int x,y; test[0]="1"; test[1]="2"; test[2]="3"; al.add(test); test = new String[3]; test[0]="4"; test[1]="5"; t...

如何将java.lang.String的空白JSON字符串值反序列化为null?【代码】

我正在尝试一个简单的JSON来反序列化到java对象.但是,我获取了java.lang.String属性值的空String值.在其余属性中,空值正在转换为空值(这就是我想要的). 我的JSON和相关的Java类如下所示. JSON字符串:{"eventId" : 1,"title" : "sample event","location" : "" }EventBean类POJO:public class EventBean {public Long eventId;public String title;public String location;}我的主要类代码:ObjectMapper mapper = new ObjectMap...

java – 可靠地将任何对象转换为String然后再返回【代码】

有没有可靠的方法将任何对象转换为String然后再返回到同一个对象?我已经看到一些人使用toString()转换它们的例子,然后将该值传递给构造函数以再次重建对象,但并非所有对象都有这样的构造函数,因此该方法不适用于所有情况.会怎么样?解决方法:是的,它被称为serialization!String serializedObject = "";// serialize the objecttry {ByteArrayOutputStream bo = new ByteArrayOutputStream();ObjectOutputStream so = new ObjectO...

java – String.replaceAll比自己完成工作慢得多【代码】

我有一段旧代码,用于在字符串中执行查找和替换标记. 它接收from和to的映射,迭代它们,对于每个对,迭代目标字符串,查找from使用indexOf(),并用to的值替换它.它完成StringBuffer上的所有工作并最终返回一个String. 我用这一行替换了代码:replaceAll(“[,.] *”,“”);我进行了一些比较性能测试.当比较1,000,000次迭代时,我得到了这个:Old Code: 1287msNew Code: 4605ms 3倍长! 然后我尝试用3次调用替换它来代替: replace(“,”,“...

Firebase DatabaseException:无法将java.lang.Long类型的值转换为String【代码】

com.google.firebase.database.DatabaseException: Failed to convertvalue of type java.lang.Long to String是在尝试将数据检索到对象以供使用时遵循文档时遇到的错误. 这是我的对象模型public class User {private String tour_director_key;private String last_name;private String location_latitude;private String tour_id;private String photo;private String tour_director_name;private String middle_name;private St...

java – 为什么String.length()是一个方法?

如果一个String对象是不可变的(因此显然不能改变它的长度),为什么length()是一个方法,而不是简单地成为公共最终的int长度,例如在数组中? 它只是一个getter方法,还是进行某种计算? 试着看看这背后的逻辑.解决方法:Java是一种标准,而不仅仅是一种实现.不同的供应商可以以不同的方式许可和实施Java,只要它们符合标准即可.通过对字段进行标准调用,可以非常严重地限制实现,这是没有充分理由的. 对于课程的未来而言,方法也更灵活.除了在...

如何在Java 9中实现String连接?【代码】

如JEP 280: Indify String Concatenation所写:Change the static String-concatenation bytecode sequence generated by javac to use invokedynamic calls to JDK library functions. This will enable future optimizations of String concatenation without requiring further changes to the bytecode emmited by javac.在这里,我想了解invokedynamic调用的用途以及字节码连接与invokedynamic的不同之处?解决方法:“旧”方式...

java – 如何将String转换为BigInteger?【代码】

我试图从标准输入中读取一些非常大的数字并将它们加在一起. 但是,要添加到BigInteger,我需要使用BigInteger.valueOf(long);:private BigInteger sum = BigInteger.valueOf(0);private void sum(String newNumber) {// BigInteger is immutable, reassign the variable:sum = sum.add(BigInteger.valueOf(Long.parseLong(newNumber))); }这工作正常,但由于BigInteger.valueOf()只需要很长时间,我不能添加大于long的最大值的数字(922...

Java 基础:String 类源码分析【代码】

String 类实现接口 String 类底层实现 String 构造方法 其他方法 参考链接 Java 中数据类型分为两大类:基础数据类型(byte,short,int,long,float,double,char,boolean)和引用类型(String 类型和基础数据类型的包装类),可以看出 String 类型是非常特殊的,同时也是编写代码过程中使用比较频繁的一种类型,为了更好的了解该类型,决心钻研一下 String 类源码,希望能有所收获。 String 类实现接口 public final class String imp...

Java string类

在Java中String类型是不可变类型 不可变类型:在每一个改变了字符串值的操作都会产生一个新的string对象 string abc = "wo"; string df = "hi"+ abc +"ddd";//编译器会自动对string的+连接操作优化性能 使用StringBuilder类append再toString 注意点:如果在循环里做字符串的+操作,记得在循环外new StringBuilder 对象。以免循环里init Builder对象 无意识的递归:使用ArrayList 等其他对象时,基本上都会覆盖toString()方法按...

java中stringBuilder的用法

String对象是不可改变的。每次使用 System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用System.Text.StringBuilder类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder类可以提升性能。  通过用一个重载的构造函数...

java – 无法获取OkHttp的response.body.toString()来返回一个字符串【代码】

我正在尝试使用OkHttp获取一些json数据,并且无法弄清楚为什么当我尝试记录response.body().toString()时得到的结果是:results :: com.squareup.okhttp.Call$RealResponseBody@41c16aa8try {URL url = new URL(BaseUrl);OkHttpClient client = new OkHttpClient();Request request = new Request.Builder().url(url).header(/****/).build();Call call = client.newCall(request);Response response = call.execute();**//for some...

mybatis无效比较:invalid comparison:java.util.data and java.lang.string【代码】

原因: 时间与空字符串比较是无效的,如果拿传入的时间类型参数与空字符串''进行对比则会引发invalid comparison:java.util.data and java.lang.string异常 解决方法: 把xxx.xml中的 <if test="XXX !=null and XXX!='' "> XXX!='' 去掉,只保留非空判断