小编cod*_*lor的帖子

Android/Java Regex从子字符串中删除额外的零

我有以下字符串作为输入:

"2.0,3.00,-4.0,0.00,-0.00,0.03,2.01,0.001,-0.03,101"
Run Code Online (Sandbox Code Playgroud)

最终输出将如下:

"2,3,-4,0,0,.03,2.01,.001,-.03,101"
Run Code Online (Sandbox Code Playgroud)

所有前导和尾随零将被删除,正/负零点将会更加简单为零.

我们可以通过首先拆分字符串并为每个部分使用Regex来实现这一点.但我的字符串大小超过10000.
我们怎样才能实现这个目标Regex

编辑:

答案分析:

我用String测试了所有答案,"0.00,-0.00,00.00,-00.00,40.00,-40.00,4.0,-4.0,4.01,-4.01,04.01,-04.01,004.04,-004.04,0004.040,-0004.040,101,.40,-.40,0.40,-0.40"并且WiktorStribiżew的答案通过了所有的测试用例.(见这里:https://regex101.com/r/tS8hE3/9)大部分案例都通过了其他答案,但并非全部.

java regex string android

12
推荐指数
1
解决办法
394
查看次数

如何在android中模拟MotionEvent和SensorEvent进行单元测试?

如何单元测试android SensorEventMotionEvent类?

我需要MotionEvent为单元测试创建一个对象.(我们有模拟创建自定义对象后可以使用的obtain方法)MotionEventMotionEvent

对于MotionEvent类,我试过Mockito像:

MotionEvent Motionevent = Mockito.mock(MotionEvent.class);
Run Code Online (Sandbox Code Playgroud)

但是我在Android Studio上遇到错误:

java.lang.RuntimeException:

Method obtain in android.view.MotionEvent not mocked. See https://sites.google.com/a/android.com/tools/tech-docs/unit-testing-support for details.
    at android.view.MotionEvent.obtain(MotionEvent.java)
Run Code Online (Sandbox Code Playgroud)

关于此错误提到的网站,我已添加

testOptions {
        unitTests.returnDefaultValues = true
    }
Run Code Online (Sandbox Code Playgroud)

在build.gradle上,但我仍然得到同样的错误.有什么想法吗?

android mockito android-sensors android-testing

9
推荐指数
1
解决办法
2196
查看次数

同时检测父视图和子视图的 Android-Touch 事件

目前以下是我的应用程序的布局:

       LinearLayout
            ----Button
               ----ScrollView
                  ----RelativeLayout
                     ----EditText
Run Code Online (Sandbox Code Playgroud)

我在所有这些之上创建了一个透明的 LinearLayout,实现了 OnTouchListener 并在 OnTouch() 内部,返回 false。因此,所有控件都移动到子级下方。但是在 LinearLayout 上,我无法处理 ACTION_MOVE 操作,因为此布局不消耗 MotionEvent 对象。有什么方法可以检测父视图和子视图中的所有触摸事件吗?

android touch-event android-layout android-activity

5
推荐指数
1
解决办法
3154
查看次数

检测每个触摸事件而不获取应用程序上下文?

我们可以通过在上下文中使用getWindow()获取每个Activity的Touch事件:

//set Window.Callback for getting touch event 
        final Window window = context.getWindow();
        final Window.Callback localCallback = window.getCallback();
        window.setCallback(new MyWindowCallback(localCallback));
Run Code Online (Sandbox Code Playgroud)

如何在不使用上下文的情况下实现它?

有没有办法删除这个回调(因为窗口类没有任何删除回调方法?

android android-activity

3
推荐指数
1
解决办法
331
查看次数