android studio上的字符串限制 [英] String limit on android studio

查看:205
本文介绍了android studio上的字符串限制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我真的是Android Studio和Java编程的新手.

i am really new to Android Studio and java programming.

我试图创建一个新项目,只是为了进行实验和学习.

im trying to create a new project, just to experimenting and learning.

这个应用程序有很长的文字,我使用字符串来格式化它,也可以作为资源.

this app there is long text and i using string to format it and also as resources.

但是,经过1400多种文字和格式设置后,活动崩溃了.

however, after 1400+ text and formatting, the activity crash.

我可以知道字符串资源是否有一些限制?

may i know is there some limit on string resources ?

以及解决问题的方法是什么?

and what is the way to overcome the problems ?

我想出要使用原始文本,但是根据我目前的理解,无法像字符串一样格式化它.

i figured out to use raw text, but on my current understanding, there is no way to format it like strings.

真的很感谢有人能帮忙.

really appreciate if anyone can help.

\ edit

这是错误

2021-02-20 14:03:15.512 26003-26003/? E/example.munaja: Unknown bits set in runtime_flags: 0x8000
2021-02-20 14:03:15.528 26003-26003/com.example.munajat E/libc: Access denied finding property "runtime.mmitest.isrunning"
2021-02-20 14:03:15.734 26003-26042/com.example.munajat E/AwareLog: AtomicFileUtils: readFileLines file not exist: android.util.AtomicFile@becf0c7

这是我开始崩溃的活动时的完整堆栈跟踪

and here is full stack trace when i start the activity that crashed

2021-02-20 14:08:19.733 26422-26422/? I/example.munaja: Late-enabling -Xcheck:jni
2021-02-20 14:08:19.765 26422-26422/? E/example.munaja: Unknown bits set in runtime_flags: 0x8000
2021-02-20 14:08:19.767 26422-26422/? I/example.munaja: Reinit property: dalvik.vm.checkjni= false
2021-02-20 14:08:19.775 26422-26422/? W/re-initialized>: type=1400 audit(0.0:666616): avc: denied { read } for pid=26422 name="u:object_r:mmi_prop:s0" dev="tmpfs" ino=15380 scontext=u:r:untrusted_app:s0:c159,c257,c512,c768 tcontext=u:object_r:mmi_prop:s0 tclass=file permissive=0
2021-02-20 14:08:19.778 26422-26422/? E/libc: Access denied finding property "runtime.mmitest.isrunning"
2021-02-20 14:08:19.782 26422-26422/? D/ActivityThread: Attach thread to application
2021-02-20 14:08:19.925 26422-26422/com.example.munajat I/example.munaja: QarthPatchMonintor::Init
2021-02-20 14:08:19.925 26422-26422/com.example.munajat I/example.munaja: QarthPatchMonintor::StartWatch
2021-02-20 14:08:19.925 26422-26422/com.example.munajat I/example.munaja: QarthPatchMonintor::WatchPackage: /data/hotpatch/fwkhotpatch/
2021-02-20 14:08:19.925 26422-26422/com.example.munajat I/example.munaja: QarthPatchMonintor::CheckAndWatchPatch: /data/hotpatch/fwkhotpatch/com.example.munajat
2021-02-20 14:08:19.925 26422-26422/com.example.munajat I/example.munaja: QarthPatchMonintor::CheckAndWatchPatch: /data/hotpatch/fwkhotpatch/all
2021-02-20 14:08:19.925 26422-26422/com.example.munajat I/example.munaja: QarthPatchMonintor::Run
2021-02-20 14:08:19.925 26422-26441/com.example.munajat I/HwApiCacheMangerEx: apicache path=/storage/emulated/0 state=mounted key=com.example.munajat#10415#256
2021-02-20 14:08:19.925 26422-26456/com.example.munajat I/example.munaja: QarthPatchMonintor::Reading
2021-02-20 14:08:19.925 26422-26441/com.example.munajat I/HwApiCacheMangerEx: apicache path=/storage/1538-291C state=mounted key=com.example.munajat#10415#256
2021-02-20 14:08:19.925 26422-26456/com.example.munajat I/example.munaja: QarthPatchMonintor::CheckNotifyEvent
2021-02-20 14:08:19.926 26422-26456/com.example.munajat I/example.munaja: QarthPatchMonintor::CheckNotifyEvent before read
2021-02-20 14:08:19.927 26422-26441/com.example.munajat I/HwApiCacheMangerEx: apicache path=/storage/emulated/0 state=mounted key=com.example.munajat#10415#0
2021-02-20 14:08:19.927 26422-26441/com.example.munajat I/HwApiCacheMangerEx: apicache path=/storage/1538-291C state=mounted key=com.example.munajat#10415#0
2021-02-20 14:08:19.930 26422-26441/com.example.munajat I/AwareBitmapCacher: init processName:com.example.munajat pid=26422 uid=10415
2021-02-20 14:08:19.962 26422-26458/com.example.munajat E/AwareLog: AtomicFileUtils: readFileLines file not exist: android.util.AtomicFile@b449e48
2021-02-20 14:08:19.999 26422-26422/com.example.munajat V/ActivityThread: callActivityOnCreate
2021-02-20 14:08:20.021 26422-26422/com.example.munajat V/HwWidgetFactory: : successes to get AllImpl object and return....
2021-02-20 14:08:20.047 26422-26422/com.example.munajat W/example.munaja: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed)
2021-02-20 14:08:20.048 26422-26422/com.example.munajat W/example.munaja: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)
2021-02-20 14:08:20.060 26422-26422/com.example.munajat I/OverScrollerOptimization: start init SmartSlideOverScroller and get the overscroller config
2021-02-20 14:08:20.060 26422-26422/com.example.munajat I/OverScrollerOptimization: get the overscroller config
2021-02-20 14:08:20.246 26422-26422/com.example.munajat D/myLog: 2:08 pm
2021-02-20 14:08:20.253 26422-26422/com.example.munajat D/myLog: Sat Feb 20 14:08:20 GMT+08:00 2021
2021-02-20 14:08:20.253 26422-26422/com.example.munajat D/myLog: Saturday, 20 February 2021
2021-02-20 14:08:20.256 26422-26422/com.example.munajat D/ActivityThread: add activity client record, r= ActivityRecord{ebb44ec token=android.os.BinderProxy@91c585c {com.example.munajat/com.example.munajat.home}} token= android.os.BinderProxy@91c585c
2021-02-20 14:08:20.293 26422-26463/com.example.munajat D/HiTouch_PressGestureDetector: onAttached, package=com.example.munajat, windowType=1, mHiTouchRestricted=false
2021-02-20 14:08:20.329 26422-26460/com.example.munajat I/iGraphics: [0020080c] pn: com.example.munajat, p: 26422
2021-02-20 14:08:20.329 26422-26460/com.example.munajat I/iGraphics: [0030080c] no spt app: com.example.munajat
2021-02-20 14:08:20.346 26422-26460/com.example.munajat D/mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
2021-02-20 14:08:20.419 26422-26460/com.example.munajat W/Gralloc3: mapper 3.x is not supported
2021-02-20 14:08:20.462 26422-26422/com.example.munajat I/HwViewRootImpl: removeInvalidNode jank list is null


推荐答案

String.length()方法返回字符串的长度.字符串的长度等于字符串中Unicode单元的数量.Java平台在char数组(每个字符占用两个字节),String和StringBuffer类中使用UTF-16表示形式.

String.length() method returns the length of the string. The length of the string is equal to the number of Unicode units in the string. The Java platform uses the UTF-16 representation in char arrays (each character takes two bytes), String, and StringBuffer classes.

该方法返回int类型的长度.因此,字符串最大大小整数数据类型的范围相同.该方法将返回的最大长度为 Integer.MAX_VALUE .

The method returns the length which is of type int. So, the String maximum size is the same as the range of integer data type. The maximum length that would be returned by the method would be Integer.MAX_VALUE.

Java中int的大小为4个字节(包括一个带符号的位,即MSB).整数数据类型的范围是-2 31 到2 31 -1(-2147483648到2147483647).请记住,我们不能使用负值进行索引.索引在最大范围内完成.这意味着我们无法存储2147483648th个字符.因此,Java中String的最大长度为0到2147483647.因此,从理论上讲,我们可以拥有长度为2147483483647个字符的String.

The size of int in Java is 4 bytes (included a signed bit, i.e. MSB). The range of integer data type is -231 to 231-1 (-2147483648 to 2147483647). Remember that we cannot use negative values for indexing. The indexing is done within the maximum range. It means that we cannot store the 2147483648th character. Therefore, the maximum length of String in Java is 0 to 2147483647. So, we can have a String with the length of 2,147,483,647 characters, theoretically.

import java.util.Arrays;

class StringMaxSize {
    public static void main(String args[]) {
        for (int i = 0; i < 1000; i++) {
            try {
                //Integer.MAX_VALUE is a constant that stores the maximum possible value for any integer variable  
                char[] array = new char[Integer.MAX_VALUE - i];
                //assign the specified data value to each element   
                Arrays.fill(array, 'a');
                //creating a constructor of the String class and parses an array into it  
                String str = new String(array);
                //determines and print the length of the string  
                System.out.println(str.length());
            } catch (Throwable e) {
                // returns the detail message string of this throwable  
                System.out.println(e.getMessage());
                //prints the maximum value  
                System.out.println("Last: " + (Integer.MAX_VALUE - i));
                System.out.println("Last: " + i);
            }
        }
    }
}

输出:

因此,1400多个文字不是实际的问题.

So, 1400+ text is not the actual issue.

有关更多详细信息,请遵循以下链接.

For more details follow this link.

这篇关于android studio上的字符串限制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆