我看到一些开发人员如何从布局文件中删除这些行,尽管它们最初是默认出现的。那么,是否值得删除它们,因为它们在项目中并不重要?
Oleg Khegay's questions
游戏“井字游戏”。创建了 9 个按钮,放置在一个数组中以声明和分发 id。我不知道如何做到这一点,以便在我单击按钮(输入 X)后,另一个随机按钮上会出现一个零。我了解您需要使用 Math.random()。只是如何......一个简单的问题,我很惭愧地问,我问别的话。
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
Button button[]= new Button[9];
Button b1pl,b2pl;
private Integer allid[]={
R.id.button1,
R.id.button2,
R.id.button3,
R.id.button4,
R.id.button5,
R.id.button6,
R.id.button7,
R.id.button8,
R.id.button9};
boolean first= true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b2pl = (Button) findViewById(R.id.b2pl);
b2pl.setOnClickListener(this);
b1pl = (Button) findViewById(R.id.b1pl);
b1pl.setOnClickListener(this);
for (int i=0;i<allid.length;i++){
button[i]=findViewById(allid[i]);
button[i].setOnClickListener(this);
}
}
@SuppressLint("ResourceAsColor")
@Override
public void onClick(View view) {
Button current = new Button(this);
current.setTextSize(24);
switch (view.getId()){
case R.id.b1pl:
if (first){
current.setTypeface(null,Typeface.BOLD);
current.setTextColor(R.color.colorPrimaryDark);
current.setText("X");
}
else {
current.setText("0");
current.setTextColor(R.color.colorPrimaryDark);
}
first=!first;
}
}
}
元素不适合此处,因此需要水平滚动。添加。但事实证明,每一行都是分开的。我想为整个活动插入一个水平滚动条。我试图在一个 HorizontalScrollView 中插入几个 linearLayots - 它不起作用。这不能做吗?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".ActivitySolar"
tools:showIn="@layout/activity_solar">
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Минимальный расход воды" />
<EditText
android:id="@+id/editText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="Name" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Qmin (л/с)" />
</LinearLayout>
</HorizontalScrollView>
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Коэффициент полезного действия микроГЭСа," />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text="Name" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Н (м)" />
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>
我了解如何使用 + - * / 按钮制作普通计算器。但是我很难把它变成字符串,那里有一个字段和一个按钮:

我不是要代码。请解释或提示如何处理此解决方案。是否正确:将数学表达式分成几部分/部分并将每个部分放入一个变量中,然后添加它?还是有其他方法?如果有一些外部资源可供阅读,我将不胜感激。
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
Button buttonCalc;
TextView result;
EditText task;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonCalc =(Button) findViewById(R.id.btnCalc);
}
@Override
public void onClick(View view) {
}
}
在一个简单的计算器中,我将两个数字相乘,我得到一个错误。我不知道如何解决它。我按照示例中的方式进行所有操作,但是...
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
TextView solarCol, solarNumber, solarPrice, solarresult;
EditText solarN, solarP;
Button res;
float num1=0;
float num2=0;
float result=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
solarCol=(TextView) findViewById(R.id.collecTitel);
solarNumber= (TextView) findViewById(R.id.collecNum);
solarPrice = (TextView) findViewById(R.id.collecrPrice);
solarresult = (TextView) findViewById(R.id.res);
solarN = (EditText) findViewById(R.id.inputNS);
solarP = (EditText) findViewById(R.id.inputNP);
res = (Button) findViewById(R.id.calc);
res.setOnClickListener(this);
}
@Override
public void onClick(View view) {
num1=Float.parseFloat(solarN.getText().toString());
num2=Float.parseFloat(solarP.getText().toString());
result=num1*num2;
solarresult.setText(result);
}
}
我试图了解递归是如何工作的。以下是如何使用循环将两个数字相乘的示例:
public int mult(int a, int b){
int sum=0;
for (int i=0;i<b;i++){
sum+=a;
}
return sum;
}
请告诉我如何使用递归重新制作这个循环?(仅使用加法)
我正在编写一个程序,它接受一个字符串(只有字母,没有标点符号或数字)和一个整数,如何沿着 ASCII 表移动术语的字符。没什么复杂的。但!因此也不允许使用数字和其他标点符号。例如,
给定“ XYZ ”,它需要移动 3 个字符 =“ ABC ”,而不是“[/]”“ xYZ ”=“ aBC ”,而不是“{/]”,即 字母应该是“轮子”:
大写字母也是如此。
我就如何处理解决方案征求意见或告别词!
到目前为止:
public class Coder {
String ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String abc = "abcdefghijklmnopqrstuvwxyz";
public String coding(String gap, int n){
String output="";
for (int i = 0; i < gap.length(); i++) {
char c = gap.charAt(i);
c+=n;
output+=c;
}
return output;
}
}
原始任务,但仍然...
输入一个数字并显示相同数量的星号。如果输入负数,则程序停止。
public void aster(){
Scanner sc= new Scanner(System.in);
System.out.print("Input n:");
boolean b = true;
int n = sc.nextInt();
while(b){
if (n>0) {
for (int i = 0; i < n; i++) {
System.out.print("*");
}
} else {
System.out.println("Program terminated");
b=false;
}
} // while(b)
问题是循环必须继续,直到输入负数。但它要么在第一次输入后停止,要么就像上面的代码一样,它根本不起作用。
Scanner如果我输入单词,我想关闭我的Stop
Scanner sc = new Scanner (System.in);
String[] words1 = new String[25];
for (int i = 0; i < 25; i++) {
if (sc.nextLine().equals("Stop")) {
System.exit(0);
} else {
words1[i]=sc.nextLine();
}
}
for (int i = 0; i < words1.length; i++) {
System.out.print(words1[i]+" ");
}
但它不起作用。如果我输入停止,数据输入将继续。+ 数组不显示。
Swing Beginner's Guide 说:“……层次结构应该从顶级容器开始。应用程序最常为此目的使用 JFrame 对象,而applet 使用JApplet。”
您能否澄清这两个概念的具体区别/目的?
给定一个数组:mas={1, 2, 3, 4, 5, 10, 20, 24, 55, 62, 73, 74, 89, 93, 94, 95};
您需要显示一个直方图,其中每列显示每个范围内的数字数量(从 0-9、10-19、20-29 ... 90-99):
# # # # # # # #
# # # #
# #
#
#
我创建了一个数组,我无法正确组成一个循环。我就如何有效地处理这个问题寻求帮助或建议。
有一个文件,其中:
12 3 5
11 3 4
13 4 5
(11、12、13 - 学生的序数,在分数的一侧)。计算每个学生成绩的算术平均值。
我知道如何计算数字的总和:
Scanner grades = new Scanner(new File("grades.txt"));
int sum=0;
int srednee=0;
int count=0;
while(grades.hasNext()){
int number=grades.nextInt();
count++;
sum=number+sum;}
srednee = sum/count;
System.out.println(srednee);
但是在这里您仍然需要单独计算每一行,并且可能跳过第一个数字,以便最终得出:
12 4
11 3.5
13 4.5
先生们,请教!
我有一个代码,但我不明白为什么它不起作用。它找到最大的数字没有问题,根据这个逻辑,我想找到最小的,但程序找到了别的东西。我也无法理解找到数字的总和和数量的错误是什么。
public static void main(String[] args) {
try{
Scanner file = new Scanner(new File("test.txt"));
int lar= file.nextInt();
int min = file.nextInt();
int count=0;
// поиск наибольшего числа
while (file.hasNextInt()){
int number=file.nextInt();
if (number>lar) {
lar=number;
}
System.out.print(number+" "); //отображение чисел
}
// поиск наименьшего числа
while(file.hasNextInt()){
int number =file.nextInt();
if (number<min) {
min=number;
}
}
// количество чисел
while(file.hasNext()){
count++;
}
// сумма чисел
int total=0;
int sum=0;
while(file.hasNextInt()){
sum = file.nextInt();
total= sum+total;}
file.close();
System.out.println();
System.out.println("Наибольшее число: " + lar);
System.out.println("Наименьшее число " + min);
System.out.println("Количество чисел: "+ count);
System.out.println("Сумма чисел: "+ total);
}catch(IOException e){
System.out.println(e.getMessage());}
文本文件中的数字是: 1231 123 21 321 2 32 3 23 2 232 -23 123123123
编译器输出:
21 321 2 32 3 23 2 232 -23 123123123
Наибольшее число: 123123123
Наименьшее число 123
Количество чисел: 0
Сумма чисел: 0
我知道如何从字符串中做到这一点。用计数器很简单。
for (int k = 0; k < input.length(); k++) {
if (Character.isUpperCase(input.charAt(k))) upperCase++;
if (Character.isLowerCase(input.charAt(k))) lowerCase++;
}
System.out.printf("Всего %d заглавных букв и %d прописных.",upperCase,lowerCase);
但是如何将它应用到文件中呢?通过 FileInputStream 上传文件后,如何从头到尾循环并应用它?对不起“菜鸟”的问题。
好人,
假设给定一个数组:
4 3 1 2
1 7 2 2
3 3 5 0
结果应该是:
4 3 1 2 10
1 7 2 2 12
3 3 5 0 11
8 13 8 4
有一个数组输出代码:
public static void main(String[] args) {
int r = 4;
int col = 6;
int[][] mat = new int[r][col];
for (int i = 0; i < mat.length; i++) {
for (int j = 0; j < mat[i].length; j++) {
mat[i][j] = (int) (Math.random() * 10);
}
}
int sum = 0;
// Вывод матрицы
for (int i = 0; i < mat.length; i++, System.out.println()) {
for (int j = 0; j < mat[i].length; j++) {
System.out.print(mat[i][j] + " ");
}
}
}
我知道如何分别显示每一行的总和,但这不是你需要的......





