powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Проблемы с оператором if
8 сообщений из 8, страница 1 из 1
Проблемы с оператором if
    #38553872
alexmx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток)))
Проблема следующего характера:

Прописываю условие
Код: java
1.
2.
3.
if(mainGroup=="G0"){
                    l1 = (Math.sqrt(Math.pow((x-x1), 2) + Math.pow((y-y1), 2)));
                    }


После чего получаю l1 равным 0.

Если убрать оператор if формула l1 отрабатывается нормально.

Вот весь код:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
package ru.myscanner.scannerth;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;

import android.widget.TextView;

public class MainActivity extends Activity {
       
	
		@SuppressLint("SdCardPath")
		private String FILENAME = "/mnt/sdcard/cnc.txt";
        
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                TextView text = (TextView)findViewById(R.id.text1);
                
                ArrayList<String> listWithCommands = null;
				try {
					listWithCommands = getCommandsToDB(FILENAME);
				} catch (IOException e) {
					// TODO Автоматически созданный блок catch
					e.printStackTrace();
				}
                for (String s : listWithCommands) {
                    text.append(s+"\n");
                }
            }
         
            public static ArrayList<String> getCommandsToDB(String fileName) throws IOException {
                ArrayList<String> forReturnList = new ArrayList<String>();
                String stringWithText = null;
                BufferedReader bufferedReader = new BufferedReader(new FileReader(new File(fileName)));
                StringBuilder stringBuilder = new StringBuilder();
                
                double x = 0;
                double y = 0;
                double x1 = 0;
                double y1 = 0;
                double l1 = 0;
                
                while((stringWithText = bufferedReader.readLine()) != null) {
                    stringBuilder.append(stringWithText + "\n");
                }
                Pattern pattern = Pattern.compile("((PART)\\s?(((\\w*\\.?))*)?)|(((G|M)[0-9]{1,3})?\\s(Xс**а|B)(-?[0-9]+\\.?[0-9]+)\\s?((X|Y)(-?[0-9]+\\.?[0-9]+))?\\s?(((I)(-?[0-9]+\\.?[0-9]+))?\\s((J)(-?[0-9]+\\.?[0-9]+))?)?)");
                Matcher matcher = pattern.matcher(stringBuilder.toString());
            
                String mainGroup = null;
                String part = null;
                	
                while (matcher.find()) {
                	
                	double a = 0;
                	double b = 0;
                	double i = 0;
                	double j = 0;
                	
                    mainGroup = matcher.group(7);
                    part = matcher.group(3);
                   
                    x = (matcher.group(9) != null && matcher.group(9).equals("X")) ? Double.parseDouble(matcher.group(10)) : 0;
                    y = (matcher.group(9) != null && matcher.group(9).equals("Y")) ? Double.parseDouble(matcher.group(10)) : 0;
                   
                    a = (matcher.group(9) != null && matcher.group(9).equals("A")) ? Double.parseDouble(matcher.group(10)) : a;
                    b = (matcher.group(9) != null && matcher.group(9).equals("B")) ? Double.parseDouble(matcher.group(10)) : b;
                    x = (matcher.group(12) != null && matcher.group(12).equals("X")) ? Double.parseDouble(matcher.group(13)) : x;
                    y = (matcher.group(12) != null && matcher.group(12).equals("Y")) ? Double.parseDouble(matcher.group(13)) : y;
                    i = (matcher.group(16) != null && matcher.group(16).equals("I")) ? Double.parseDouble(matcher.group(17)) : i;
                    j = (matcher.group(19) != null && matcher.group(19).equals("J")) ? Double.parseDouble(matcher.group(20)) : j;
                   
                   
                    
                    //Присвоение  первой  координаты
                    if(x==0){
                    	x=x1;
                    }
                    if(y==0){
                    	y=y1;
                    } 
                    
                    //Вычисление
                    if(mainGroup=="G0"){
                    l1 = (Math.sqrt(Math.pow((x-x1), 2) + Math.pow((y-y1), 2)));
                    }
                    
                    //Присвоение вторичной  координаты
                    if(x!=0 && y!=0){
                    	x1=x;
                    	y1=y;
                    }
                    
                    	 forReturnList.add(mainGroup + "    " + x +"    " + y + "    " + i + "    " + j + "    " + a + "    " + b + "    " + part + "   " + l1); 	
                }
                return forReturnList;  
            }
        } 
...
Рейтинг: 0 / 0
Проблемы с оператором if
    #38553901
Витяй1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
if(mainGroup=="G0")


попробуй вместо == написать
Код: java
1.
mainGroup.equalsIgnoreCase("G0")
...
Рейтинг: 0 / 0
Проблемы с оператором if
    #38553915
alexmx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теперь вылет приложения

02-07 12:11:55.077: E/AndroidRuntime(11600): FATAL EXCEPTION: main
02-07 12:11:55.077: E/AndroidRuntime(11600): java.lang.RuntimeException: Unable to start activity ComponentInfo{ru.myscanner.scannerth/ru.myscanner.scannerth.MainActivity}: java.lang.NullPointerException
02-07 12:11:55.077: E/AndroidRuntime(11600): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
02-07 12:11:55.077: E/AndroidRuntime(11600): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
02-07 12:11:55.077: E/AndroidRuntime(11600): at android.app.ActivityThread.access$600(ActivityThread.java:130)
02-07 12:11:55.077: E/AndroidRuntime(11600): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
02-07 12:11:55.077: E/AndroidRuntime(11600): at android.os.Handler.dispatchMessage(Handler.java:99)
02-07 12:11:55.077: E/AndroidRuntime(11600): at android.os.Looper.loop(Looper.java:137)
02-07 12:11:55.077: E/AndroidRuntime(11600): at android.app.ActivityThread.main(ActivityThread.java:4745)
02-07 12:11:55.077: E/AndroidRuntime(11600): at java.lang.reflect.Method.invokeNative(Native Method)
02-07 12:11:55.077: E/AndroidRuntime(11600): at java.lang.reflect.Method.invoke(Method.java:511)
02-07 12:11:55.077: E/AndroidRuntime(11600): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
02-07 12:11:55.077: E/AndroidRuntime(11600): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
02-07 12:11:55.077: E/AndroidRuntime(11600): at dalvik.system.NativeStart.main(Native Method)
02-07 12:11:55.077: E/AndroidRuntime(11600): Caused by: java.lang.NullPointerException
02-07 12:11:55.077: E/AndroidRuntime(11600): at ru.myscanner.scannerth.MainActivity.getCommandsToDB(MainActivity.java:96)
02-07 12:11:55.077: E/AndroidRuntime(11600): at ru.myscanner.scannerth.MainActivity.onCreate(MainActivity.java:34)
02-07 12:11:55.077: E/AndroidRuntime(11600): at android.app.Activity.performCreate(Activity.java:5008)
02-07 12:11:55.077: E/AndroidRuntime(11600): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
02-07 12:11:55.077: E/AndroidRuntime(11600): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
02-07 12:11:55.077: E/AndroidRuntime(11600): ... 11 more
...
Рейтинг: 0 / 0
Проблемы с оператором if
    #38553924
alexmx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
96 строка
...
Рейтинг: 0 / 0
Проблемы с оператором if
    #38553983
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Студия подсказывает см рис.

Попробуй
Код: java
1.
2.
3.
            if("G0".equals(mainGroup)){
                l1 = (Math.sqrt(Math.pow((x-x1), 2) + Math.pow((y-y1), 2)));
            }



И если ошибки не будет и при этом не отработает как положено, то посмотри, что из себя mainGroup к тому времени представляет. Дебаггером.
...
Рейтинг: 0 / 0
Проблемы с оператором if
    #38553990
alexmx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде кушает нормально)))
Спасибо большое)))
...
Рейтинг: 0 / 0
Проблемы с оператором if
    #38554579
petrovichtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ява по-своему работает со строчками, нужно внимательно подсказки Эклипса читать.
...
Рейтинг: 0 / 0
Проблемы с оператором if
    #38561020
Tensai
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Операция '==' сравнивает ссылки на обьекты, а не значения.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Проблемы с оператором if
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]